Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите чайнику... / 19 сообщений из 19, страница 1 из 1
16.12.2013, 20:35
    #38502695
Den_S40
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите чайнику...
Здравствуйте, помогите решить проблему, я новичок.
-----
Вот что показывает php валидатор:

syntax error, unexpected
'case' (T_CASE)
Ошибка в 28-ой строке
-----
А вот и сама строка:

28 case 'log_out':
-----
Исправьте, или подскажите как её решить, желательно подробнее (что, и куда вставлять)
...
Рейтинг: 0 / 0
16.12.2013, 20:55
    #38502716
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите чайнику...
Den_S40,

Новичок не только в ПХП, а в программировании в целом видимо. Вот реально люблю питон за то, что он не позволяет писать неформатированный код (ну конечно извратиться можно, но там это сделать сложно).

Первое, что надо сделать - это проставить левые отступы правильно ("углубить" вложенные блоки кода во внешние)... И Вы сразу увидите, что у Вас не хватает закрывающих скобок (потому интерпретатор пхп относит case не к switch, а к if... а конструкции "if (){} case:" не существует).

Ну вот так это выглядит для пхп интерпретатора:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
<?php
include 'config.php';
switch($_GET['act']){
  default:
    if(!isset($aut)){
      if(isset($_POST['login']) and isset($_POST['pass'])){
        $login=mysql_s($_POST['u954626456_site1']);
        $pass=mysql_s($_POST['597338']);

        $q=mysql_query("SELECT `id` FROM `users` WHERE `login`='$login' AND `pass`='$pass'");
        if(mysql_num_rows($q)!=0){

          if($_POST['forget']){
            $user=get_user(mysql_result($q, 0));
            setcookie ("pass", md5(md5($user['pass'])), time() + 100000);
            setcookie ("uid", $user['id'], time() + 100000);
          } else 
            $_SESSION['uid']=mysql_result($q, 0);
          mysql_query("INSERT INTO `logs` (`login`, `ip`, `ua`, `time`, `success`, `method`) values ('$_GET[login]', 
                      '$_SERVER[REMOTE_ADDR]', '$_SERVER[HTTP_USER_AGENT]', '".time()."', '1', '1')"
          );
          header('location: enter.php?rnd='.$rand);
        }else{
          div('Ошибка');
        echo '&#187; <a href="enter.php?rnd='.$rand.'">Авторизация</a><br/><br/>';
        div('Вход');
        $time_a=data(time());
        echo 'Привет <b>'.$aut['login'].'</b> [id='.$aut['id'].']<br/>Ты успешно авторизован<br/>';

        case 'log_out':
          if(!isset($_POST['yes'])){
            div('Выход из учетки');
            echo '&#187; <a href="index.php">Главная</a><br/><br/>';
            echo '<form action="enter.php?act=log_out&amp;rnd='.$rand.'" method="POST">';
            echo '<b>'.$aut['login'].'</b>, внимание!<br/>Вы хотите покинуть сайт<br/>Ваша сессия будет удалена<br/>Чтобы вновь зайти, Вам необходимо будет ввести логин и пароль<br/>Подтвердите выход<br/><br/>';
            echo '<input type="submit" name="yes" value="Покинуть сайт"></form>';
          }else{
            header('location: enter.php?rnd='.$rand);
      }else{
        if(isset($_GET['r_id'])){
          $s=mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `id`='".intval($_GET['r_id'])."'"));
          $log=$s['login'];
        }else{
          $log=$aut['login'];
        }
        div('История логинов');
        echo '&#187; <a href="lk.php">Личный кабинет</a><br/><br/>';
        echo 'Внимание!<br/>Если Вы видите много неудачных попыток логина (причем не с Вашими IP и UА) - возможно Вашу учетку хотят взломать<br/>Возможно есть смысл задуматься о безопасности учетнои записи<br/><br/>';
        echo 'Ваши IР и UА<br/>IР: '.$_SERVER['REMOTE_ADDR'].'<br/>UА: '.$_SERVER['HTTP_USER_AGENT'].'<br/><br/>';
        $q=mysql_query("SELECT * FROM `logs` WHERE `login` = '$log' ORDER BY `time` DESC LIMIT 20");
        while($f=mysql_fetch_assoc($q)){
          if ($f['success']==1)$s='<u><font color="green">успешен</font></u>';
          else
            $s='<u><font color="red">неудачен</font></u>';
          if($f['method']==1)$m='Стандартный вход';
          if($f['method']==2)$m='Стандартный вход';
          if($f['method']==3)$m='Сохраненная сессия';
          $n++;
          if(is_integer($n/2)){
            echo '<div class="msg2">';
          }else{
            echo '<div class="msg1">';
          }
          echo data($f['time']).'<br/>IP: <b><font color="red">'.$f['ip'].'</font></b><br/>UA: <b><font color="red">'.$f['ua'].'</font></b><br/>Логин: '.$s.'<br/>Способ входа: '.$m.'</div>';}}
          break;
        }
        echo '</div>';
        include 'foot.php';
        echo '</div>';
?>




Ну вот, видите какая каша по вложенности :) case находится в if .
Перед else точка с запятой не ставится... Ну и многое другое. В общем, сначала отформатируйте код, приведите уровни к правильному порядку (вложите что и куда надо) и тогда можно будет посмотреть. И кстати, код сюда пишите, а то качать файлы как-то не круто :)
...
Рейтинг: 0 / 0
17.12.2013, 00:19
    #38502920
Den_S40
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите чайнику...
Програмёр,

Да, я новичок в программировании.
Исправить будет сложно? я в ужасе... :O
Думаю как и многие новички :O
...
Рейтинг: 0 / 0
17.12.2013, 00:20
    #38502921
Den_S40
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите чайнику...
А есть какой-нибудь способ быстрее исправить ошибки? :O
...
Рейтинг: 0 / 0
17.12.2013, 00:25
    #38502924
SmeL_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите чайнику...
Скачайте IDE, netbeans выберите тот что для PHP. С ним Вам будет проще
...
Рейтинг: 0 / 0
17.12.2013, 01:50
    #38502968
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите чайнику...
SmeL_mdСкачайте IDE, netbeans выберите тот что для PHP. С ним Вам будет проще

Да-да... кстати... я что-то не подумал предложить. Есть ещё удобная штука eclipse... мне больше понравилось из-за производительности и как-то интерфейс удобнее. Но вот в автодополнении он явно уступает netbeans'у, потому первой средой разработки должна быть именно netbeans...

эх... "подростающее" поколение )))...

1. код надо форматировать на этапе написания (с этим разобрались)

2. куча echo - это не круть... да и вообще echo надо использовать в тех редких случаях, когда надо вывести маленькую строчку, переменную и т.д. То есть тогда, когда это не поломает внешний вид кода... Иначе, лучше писать так:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<?php
...

if(!isset($_POST['yes'])){
?>
            <div>Выход из учетки</div>
            &#187; <a href="index.php">Главная</a><br/><br/>
            <form action="enter.php?act=log_out&amp;rnd=<?= $rand ?>" method="POST">
            <b><?= $aut['login'] ?></b>, внимание!<br/>Вы хотите покинуть сайт<br/>Ваша сессия будет удалена<br/>Чтобы вновь зайти, Вам необходимо будет ввести логин и пароль<br/>Подтвердите выход<br/><br/>
            <input type="submit" name="yes" value="Покинуть сайт"></form>
<?php
}
?>



вот это <?= 'что-то там' ?> это краткая запись <?php echo 'что-то там' ?>. Просто красивее смотрится.

3. желательно комментировать то, что пишите... и привыкать к этому с самого начала. Дело в том, что Ваш код уже спустя несколько месяцев будет сложно читаем даже для Вас. А на этапе обучения... Скорее всего через пол годика-годик Вы будете на свои первые кода смотреть как на бред сумасшедшего :)

4. фигурными скобками (закрывающими "}" надо обозначать какой уровень закрываем, а потому не хорошо писать их в конце строки)


итак, попробуем:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
<?php
include 'config.php';
switch($_GET['act']){
  default:
    
    if(!isset($aut)){
      
      //логинимся
      if(isset($_POST['login']) and isset($_POST['pass'])){
        $login=mysql_s($_POST['u954626456_site1']);
        $pass=mysql_s($_POST['597338']);

        $q=mysql_query("SELECT `id` FROM `users` WHERE `login`='$login' AND `pass`='$pass'");
        if(mysql_num_rows($q)!=0){

          //если данные совпали, то
          //пишем в куки - если надо запомнить пользователя
          //или в сессию - если галочка не выбрана и переадресовываем
          if($_POST['forget']){
            $user=get_user(mysql_result($q, 0));
            setcookie ("pass", md5(md5($user['pass'])), time() + 100000);
            setcookie ("uid", $user['id'], time() + 100000);
          }else{ 
            $_SESSION['uid']=mysql_result($q, 0);
          }
          mysql_query("INSERT INTO `logs` (`login`, `ip`, `ua`, `time`, `success`, `method`) values ('$_GET[login]', 
                      '$_SERVER[REMOTE_ADDR]', '$_SERVER[HTTP_USER_AGENT]', '".time()."', '1', '1')"
          );
          header('location: enter.php?rnd='.$rand);
        }else{
          echo "<div>Ошибка</div>";
        }
        
        //тут вывод данных, каких - не совсем понятно.
        //получается "успешно залогинен" даже когда произошла ошибка
        $time_a=data(time());
        ?>
        &#187; <a href="enter.php?rnd=<?= $rand ?>">Авторизация</a><br/><br/>';
        <div>Вход</div>
        Привет <b><?= $aut['login'] ?></b> [id='<?= $aut['id'] ?>']<br/>Ты успешно авторизован<br/>
        <?php
      }  
      
    /*а вот это, похоже история логов
      добавил закрывающую скобку перед комментом
      так как похоже это уже когда успешно залогинились,
      то есть auth уже должна быть установлена (записана)*/
    }else{
      //смотрим существует ли юзер (я так понимаю его можно как-то выбрать
      //если ты админ, тогда проверяем на наличие юзера в базе, или же если
      //сидим под этим именем, просто берём это имя без проверок)
      if(isset($_GET['r_id'])){
        $s=mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `id`='".intval($_GET['r_id'])."'"));
        $log=$s['login'];
      }else{
        $log=$aut['login'];
      }
      
      ?>
      <div>История логинов</div>
      &#187; <a href="lk.php">Личный кабинет</a><br/><br/>
      Внимание!<br/>Если Вы видите много неудачных попыток логина (причем не с Вашими IP и UА) - возможно Вашу учетку хотят взломать<br/>Возможно есть смысл задуматься о безопасности учетнои записи<br/><br/>
      Ваши IР и UА<br/>IР: <?= $_SERVER['REMOTE_ADDR'] ?><br/>UА: <?= $_SERVER['HTTP_USER_AGENT'] ?><br/><br/>
      <?php
      
      $q=mysql_query("SELECT * FROM `logs` WHERE `login` = '$log' ORDER BY `time` DESC LIMIT 20");
      while($f=mysql_fetch_assoc($q)){
        ?>
        <div class="msg<?= $n%2+1 ?>">
           <?= data($f['time']) ?><br/>
          IP: <b><font color="red">'.$f['ip'].'</font></b><br/>
          UA: <b><font color="red">'.$f['ua'].'</font></b><br/>
          Логин: <?= $f['success']==1 ? '<u><font color="green">успешен</font></u>' : '<u><font color="red">неудачен</font></u>' ?><br/>
          Способ входа: <? $f['method']==1 || $f['method']==2 ? 'Стандартный вход' : 'Сохраненная сессия' ?>
        </div>
        <?php
        
        $n++;
      }
    }
  break;
        
  //а это выполняется, когда мы пытаемся выйти
  case 'log_out':
    if(!isset($_POST['yes'])){
      ?>
      <div>Выход из учетки</div>
      &#187; <a href="index.php">Главная</a><br/><br/>
      <form action="enter.php?act=log_out&amp;rnd=<?= $rand ?>" method="POST">
      <b><?= $aut['login'] ?></b>, внимание!<br/>Вы хотите покинуть сайт<br/>Ваша сессия будет удалена<br/>Чтобы вновь зайти, Вам необходимо будет ввести логин и пароль<br/>Подтвердите выход<br/><br/>
      <input type="submit" name="yes" value="Покинуть сайт"></form>
      <?php
    }else{
      header('location: enter.php?rnd='.$rand);
    }
}

//вот тут не понял, что за 2 закрывающихся div, но видимо это не весь код и есть
//ещё что-то над строчкой include 'config.php'
echo '</div>';
include 'foot.php';
echo '</div>';
?>



в общем среда разработки (eclipse) на это чудо уже не ругается... я откоментил некоторые моменты (в этих же комментариях написал свои мысли и действия). В общем вроде так должно быть, но не уверен что все блоки по своим местам расставил, если что-то появится не там, где должно было - значит надо просто перенести :)
...
Рейтинг: 0 / 0
17.12.2013, 18:53
    #38504143
Den_S40
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите чайнику...
Програмёр,

это скрипт авторизации, с ним случился затык...
...
Рейтинг: 0 / 0
17.12.2013, 19:09
    #38504164
Den_S40
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите чайнику...
Програмёр,

php валидатор говорит что у вас ошибка в 20-й строке.
...
Рейтинг: 0 / 0
17.12.2013, 19:38
    #38504196
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите чайнику...
Den_S40Програмёр,

php валидатор говорит что у вас ошибка в 20-й строке.

на строке $user=get_user(mysql_result($q, 0)); ? Если да, то это не у меня ошибка, а у Вас ;)
...
Рейтинг: 0 / 0
17.12.2013, 20:35
    #38504249
Den_S40
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите чайнику...
Програмёр,

ясно, и как её исправить?
...
Рейтинг: 0 / 0
17.12.2013, 21:31
    #38504293
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите чайнику...
Den_S40Програмёр,

ясно, и как её исправить?

ну уж не знаю :) я ведь не видел функцию get_user... И понятия не имею что она делает и что в ней может быть не так... может такой функции вообще нету, Вы напишите то ошибку какую Вам показало.

Вообще каждую ошибку, которую Вы получаете надо описывать или предоставлять оригинальный текст. Иначе шанс решить проблему стремится к нулю.
...
Рейтинг: 0 / 0
18.12.2013, 10:11
    #38504615
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите чайнику...
Den_S40А есть какой-нибудь способ быстрее исправить ошибки? :O
* устанвливаете PHPStorm
* открываете в нем свой файл
* жмете Reformat code
* И наслаждаетесь кодом который красиво станет отформатированным а все ошибки при этом подсветяться как в ворде:
** использование неизвестных переменных
** ошибки вложености как у вас
** неизвестный классы/функции/константы итд
** и даже граматические в именах переменных
ps. Там этих проверок охватывают чуть ли не все.
При полностью включеных настройках он даже подсветит классы которые нигде не используються
...
Рейтинг: 0 / 0
18.12.2013, 12:20
    #38504888
SmeL_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите чайнику...
Ренат,
После Вашего описания пошел, сам качать :) хоть использую еклипс. жаль что денег хотят за него
...
Рейтинг: 0 / 0
18.12.2013, 20:45
    #38505835
Electric200
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите чайнику...
РенатDen_S40А есть какой-нибудь способ быстрее исправить ошибки? :O
* устанвливаете PHPStorm
* открываете в нем свой файл
* жмете Reformat code
* И наслаждаетесь кодом который красиво станет отформатированным а все ошибки при этом подсветяться как в ворде:
** использование неизвестных переменных
** ошибки вложености как у вас
** неизвестный классы/функции/константы итд
** и даже граматические в именах переменных
ps. Там этих проверок охватывают чуть ли не все.
При полностью включеных настройках он даже подсветит классы которые нигде не используються
Да, и можете дальше писать говнокод, ведь IDE все потом поправить и исправит. А если не дай бог ее у вас под рукой не окажется в срочный момент для быстрой правки, то у вас будет ломка как у наркомана.

Только блокнот для начала, только хардкорд!
...
Рейтинг: 0 / 0
19.12.2013, 09:17
    #38506107
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите чайнику...
Electric200,

тут ошибаетесь. На первых парах хорошая IDE позволяет ускорить процесс обучения. Всё очень просто, за неизвестной функцией не приходится в инэт бежать, а можно просто открыть список автодополнений и найти 2-3 функции, которые по названию похожи и уже их смотреть направленно. А пока списочек копали, ещё и несколько функций подсознательно уловили, а это помогает интуитивно их быстрее найти, когда они потребуются. Ну а спустя некоторое время, вообще позапоминать это всё.

Хорошая IDE позволяет не сидеть и не тупить над пропущенной ";" в конце строки (а ведь по началу, когда опыта 0, можно и часок такую ошибку искать и не понимать что не работает).

Хорошая среда разработки даёт прирост скорости по набиранию текста, так как часто позволяет введя 2-3 буквы уже выбрать нужный вариант текста (на пробел или на энтер, где как). Это ускоряет само обучение и в принципе работу.

Хорошая подсветка синтаксиса приводит к быстрому вылавливанию нужного текста из простыни кода. Это как по принципу "быстрого чтения", когда глазами пробегаешься по тексту, но смотришь (прочитываешь) только те слова, которые несут значимый смысл... а уж когда такие слова подсвечены определённым цветом - тогда вообще круть.

Вот например среда kdevelop для программирования на с++ в линукс (там много ещё языков поддерживается вроде, но мне нужен именно этот). Даже не представляете как подсаживаешься на ту фишку, что каждая переменная определённым цветом подсвечивается, и как становится обидно, когда по какой-то причине какая-то переменная не подсвечивается (как я понял атрибуты объектов так не выделяются). В общем, надо найти где эта переменная пользовалась, и вообще 0 проблем :) Глаз на автомате всё находит (жаль конечно среда в некоторых других моментах уступает эклипсу).


P.S. Попросите delphi программиста спустя месяц-два обучения написать простенькую программку с использованием форм и например какого-нить таймера, в блокноте ))). Как Вы думаете, сколько времени на это уйдёт? А всё потому, что нафиг не надо знать, как и что там делает среда разработки у тебя за спиной... В итоге понемножку всёровно всё поймётся и запомнится, а "сейчас" всегда есть что-то более важное.
...
Рейтинг: 0 / 0
19.12.2013, 12:35
    #38506372
Electric200
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите чайнику...
Вы вот все красиво описали и сейчас новички толпой побегут ставить вашу хваленную IDE (нечего личного к вам или IDE).
Но все таки на начальном уровне важнее выработать в себе дисциплину в организация грамотного кода путем набивания собственных шишек. Вот будет он дуплить 2 часа над не закрытой кавычкой, вот пусть и дуплит. Пока эти все навыки не перейдут на уровень подсознания. Это же базовое.
Чем больше он будет в всматриваться в свой говнокод, тем быстрее к нему придет осознание, что это говнокод. Т.е еще вопрос проф. движения.
А какие классы и объекты могут быть у новичка?

Хотя в некотором роде и не соглашусь с собой. Есть такие чудики которым IDE не IDE, но если у него по жизни на ботинках шнурки волочатся по офису за ним, то и код у него будет организован также.
По этому, будь суровым, пиши сначала в блокноте что бы забыть в подсознание синтаксическую основу языка, а потом уже и IDE можно.
...
Рейтинг: 0 / 0
19.12.2013, 16:21
    #38506738
SmeL_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите чайнику...
Electric200,
Пусть новичек ест сырые макароны :) как научится их переваривать, покажем где кастрюля и как газ включать. А может еще расскажем что их еще и продувать можно. Если справился с IDE пусть использует, а то что он потратит на опечатку 2 часа (как Вы предположили) то лучше от этого никому не станет.
...
Рейтинг: 0 / 0
20.12.2013, 17:11
    #38508223
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите чайнику...
SmeL_mdElectric200,
Пусть новичек ест сырые макароны :) как научится их переваривать, покажем где кастрюля и как газ включать. А может еще расскажем что их еще и продувать можно. Если справился с IDE пусть использует, а то что он потратит на опечатку 2 часа (как Вы предположили) то лучше от этого никому не станет.
вот вот, работодатели не захотят платить человеку деньги за то чтобы он два часа искал скобку. Работодатель платит за выполненую работу. C IDE новичек сможет намного быстрей разрабатывать скрипты, чего и хочет работодатель. Я конечно понимаю, что часто приходитсья зайти на прод, проверить или пофиксить в срочном порядке в виме, но обычных новичков туда и не пускают - они сидят в деве и пишут код, им надобность уметь кодить в блокноте пока не нужна.

Тем более кто такой новичек?
1) тот кто знает синтаксис но ни одного паттерна, и весь код у него - смесь шаблонов, представлений и контроллеров?
2) или тот кто не знает синтаксиса но отлично умеет использовать различные паттерны?

думаю во втором случае такому новичку без IDE никак.
...
Рейтинг: 0 / 0
20.12.2013, 19:08
    #38508399
Electric200
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите чайнику...
Если новичок 2 часа дуплит на не закрытой скобкой, то такого на работу вряд ли возьмут. Ну разве что за еду будет работать. По этому пускай сначала подуплит в свободное время. А по поводу макарон, скажу так - если этот новичек планирует стать шеф поваром, то да, он должен жрать макароны сырыми для начала. )
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите чайнику... / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]