За последние 24 часа нас посетили 71000 программистов и 10277 роботов. Сейчас ищут 3145 программистов ...

Почему в этой строке синтаксическая ошибка?

Тема в разделе "PHP для новичков", создана пользователем igmar, 18 дек 2015.

  1. igmar

    igmar Новичок

    С нами с:
    5 ноя 2015
    Сообщения:
    39
    Симпатии:
    0
    Заранее прошу прощения все эти вопросы, но мне же надо как-то научиться. Начал разбираться с php и авторизацией.
    Такая ошибка почему?
    Parse error: syntax error, unexpected ';' in Z:\home\test1.ru\www\enter.php on line 8
    8-я строка $result=1; Там есть точка с запятой.
    Код (PHP):
    1. <?php
    2. $login=@$_GET['login'];
    3. $pass=@$_GET['pass'];
    4. $result=0;
    5. foreach (file('User.dat') as $k)
    6. echo $login."-".$pass." ".$k."<br>";
    7.     if($k==$login."-".$pass{
    8.        $result=1;
    9.        echo "res1";
    10.        break;
    11.     }
    12. if ($result!=1) die("Несанкционированный доступ");
    13. session_register("authorize");
    14. $authorize=1;
    15. ?>
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    потому что на предыдущей строке у if скобка не закрыта. Иногда в процессе разбора php не может сказать, что именно неправильно, поскольку у его синтакиса много возможностей. Приходится включать свою голову. И переводите ошибки правильно - это тоже помогает. Ошибка гласит не "необходима точка с запятой", а "неожиданная точка с запятой"
     
  3. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.870
    Симпатии:
    955
    вот тут начинается синтаксическая ошибка. пхп сообщает о том где месте где анализатор уже не может понять что написал программист.
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.012
    Симпатии:
    1.679
    Адрес:
    :сердА
    Которая там UNEXPECTED, то есть не ожидается. Вы, после $pass забыли поставить скобку круглую, закрывающую.
    Код (PHP):
    1. if($k==$login."-".$pass) {
    2.        $result=1;
    3.       echo "res1";
    4.        break;
    5.     }
     
  5. igmar

    igmar Новичок

    С нами с:
    5 ноя 2015
    Сообщения:
    39
    Симпатии:
    0
    Спасибо большое.

    В продолжение. Как заменить символы конца строки на пусто?
    Я считал файл, получился массив строк. Но во всех строках, кроме последней, также считались конец строки и перевод строки chr(10) chr(13). Есть ли в php константа конца строки? Мне нужно как-то убрать эти символы из конца строки. Самый верный способ - заменить их на пустую строку. Как это сделать? Что подставить первым аргументом? Или другим способом.

    str_replace(символы_конца_строки, "",mystring)

    Спасибо, я нашел. Оказывается тут тоже есть функция chr()
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.225
    Адрес:
    там-сям
    Читай справку по функции file, там всё написано. Не надо чинить то, что не сломано. Знай матчасть.
     
  7. igmar

    igmar Новичок

    С нами с:
    5 ноя 2015
    Сообщения:
    39
    Симпатии:
    0
    Спасибо. Нашел.
    FILE_IGNORE_NEW_LINES
    "-Красть ничего не нужно ...
    - Все украдено до нас..."