За последние 24 часа нас посетили 22132 программиста и 1682 робота. Сейчас ищут 1666 программистов ...

Не работает конструкция print <<<Here

Тема в разделе "PHP для профи", создана пользователем Serg1, 28 фев 2018.

  1. Serg1

    Serg1 Новичок

    С нами с:
    28 фев 2018
    Сообщения:
    8
    Симпатии:
    0
    Здравствуйте, занимаюсь самообучением php, пытаюсь сделать систему регистрации на сайте. Использую openserver. В момент открытия сайта получаю ошибку:

    Parse error
    : syntax error, unexpected '<<' (T_SL) in E:\open\OSPanel\domains\forreg.ru\index.php on line 28.


    код:
    if (!isset($myrow['avatar']) or $myrow['avatar']=='') {

    //проверяем, не извлечены ли данные пользователя из базы. Если нет, то он не вошел, либо пароль в сессии неверный. Выводим окно для входа. Но мы не будем его выводить для вошедших, им оно уже не нужно.
    print <<<HERE

    <form action="testreg.php" method="post">
    <!-- testreg.php - это адрес обработчика. То есть, после нажатия на кнопку "Войти", данные из полей отправятся на страничку testreg.php методом "post" -->
    <p>
    <label>Ваш логин:<br></label>
    <input name="login" type="text" size="15" maxlength="15">
    HERE;




    28 строку выделил красным, подскажите пожалуйста что он от меня хотеть?
     
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    @Serg1, для начала, прочитайте выделенное красным и еще раз проверить свой код. Непонятно зачем вам вообще Heredoc тут понадобился. Хотя, судя по названию переменной $myrow , без Попова ту не обошлось.
     
  3. Serg1

    Serg1 Новичок

    С нами с:
    28 фев 2018
    Сообщения:
    8
    Симпатии:
    0
    делаю систему регистрации по инструкции на сайте русселер, откуда они ее там взяли не знаю, просто надо было с чего то начать а тут такое)), проверил отступов перед закрывающим словом нет, подскажите пожалуйста чем лучше заменить heredoc?
     
  4. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Кто бы сомневался...
    Заменять heredoc ничем не нужно, но использовать тогда, когда в этом есть необходимость.

    PHP:
    1. <?php
    2. if(/* условие */){
    3. ?>
    4. HTML-код
    5. <?php
    6. }
    7. ?>
    или такой синтаксис (if ... else)
    PHP:
    1. <?php
    2. if(/* условие */):
    3. ?>
    4. HTML-код
    5. <?php
    6. endif;
    7. ?>
     
    Serg1 нравится это.
  5. Serg1

    Serg1 Новичок

    С нами с:
    28 фев 2018
    Сообщения:
    8
    Симпатии:
    0
    Подскажите, в моем случае должно быть так?


    <?php
    if (!isset($myrow['avatar']) or $myrow['avatar']=='') {

    //проверяем, не извлечены ли данные пользователя из базы. Если нет, то он не вошел, либо пароль в сессии неверный. Выводим окно для входа. Но мы не будем его выводить для вошедших, им оно уже не нужно.

    ?>
    <form action="testreg.php" method="post">
    <!-- testreg.php - это адрес обработчика. То есть, после нажатия на кнопку "Войти", данные из полей отправятся на страничку testreg.php методом "post" -->
    <p>
    <label>Ваш логин:<br></label>
    <input name="login" type="text" size="15" maxlength="15">

    <?php

    }
    ?>
     
  6. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    @Serg1, да, можно так, только я что-то не могу понять, где вы потеряли вторую часть формы.
     
  7. Serg1

    Serg1 Новичок

    С нами с:
    28 фев 2018
    Сообщения:
    8
    Симпатии:
    0
    да, что то не то, но это уже совсем другая история.... Спасибо).