Проблема с echo

Тема в разделе "Как сделать...", создана пользователем Eight bits, 10 июн 2014.

  1. Eight bits

    Eight bits Постоялец

    Регистр.:
    28 окт 2011
    Сообщения:
    124
    Симпатии:
    20
    Добрый вечер Nulled. Помогите пожалуйста решить эту ошибку , Parse error: syntax error, unexpected T_ECHO in

    вот код:

    <?php
    $text = $_POST['text'];
    $handle = fopen("mess.html", 'a+');
    fwrite($handle, '<div class="message">'. stripslashes(htmlspecialchars($text)) .'<span class="right">'. echo $user_name;.'</span></div>');
    fclose($handle);
    ?>
     
  2. UJy

    UJy

    Регистр.:
    23 авг 2011
    Сообщения:
    322
    Симпатии:
    117
    Вам не кажется, что нельзя внутрь функции, которая записывает что-то в файл вставлять другую функцию, которая в момент вызова что-то выводит на экран?
    Попробуйте так:
    Код:
    <?php
    $text = $_POST['text'];
    $handle = fopen("mess.html", 'a+');
    fwrite($handle, '<div class="message">'. stripslashes(htmlspecialchars($text)) .'<span class="right">'.$user_name.'</span></div>');
    fclose($handle);
    ?>
    
     
  3. Eight bits

    Eight bits Постоялец

    Регистр.:
    28 окт 2011
    Сообщения:
    124
    Симпатии:
    20
    без echo не выводит имя пользователя...
     
  4. Denixxx

    Denixxx

    Регистр.:
    7 фев 2014
    Сообщения:
    247
    Симпатии:
    191
    Вам же не выводить имя пользователя, а записать в файл его нужно.
    Ну надо вывести — сделайте так:
    PHP:
    <?php
    $text 
    $_POST['text'];
    $handle fopen("mess.html"'a+');
    if (
    fwrite($handle'<div class="message">'stripslashes(htmlspecialchars($text)) .'<span class="right">'$user_name.'</span></div>'))
    echo 
    'Сообщение пользователя '.$user_name.' записано!';
    else echo 
    'Ошибка — сообщение пользователя '.$user_name.' НЕ записано!';
    fclose($handle);
    ?>
    Будет выводить — записано или нет.

    На самом деле всё ещё хуже — echo не функция. Это конструкция языка, и она ничего не возвращает.
     
    Последнее редактирование: 10 июн 2014
  5. UJy

    UJy

    Регистр.:
    23 авг 2011
    Сообщения:
    322
    Симпатии:
    117
    А можно глянуть на полный код и полный код ошибки?

    -- дополнено --

    Насколько я вижу суть проблемы, то код твой интерпритируется так:
    Код:
    <?php
    $text = $_POST['text']; // код
    $handle = fopen("mess.html", 'a+'); //код
    fwrite($handle, '<div class="message">'. stripslashes(htmlspecialchars($text)) .'<span class="right">'. echo $user_name; //код, так как стоит точка с запятой, то код закончен
    .'</span></div>'); // ошибка
    fclose($handle); // код
    ?>
    Или я что-то не так интерпритирую?
    Попробуйте
    Код:
    <?php
    $text = $_POST['text'];
    $handle = fopen("mess.html", 'a+');
    fwrite($handle, '<div class="message">'. stripslashes(htmlspecialchars($text)) .'<span class="right">'. echo $user_name.'</span></div>');
    fclose($handle);
    ?>
    
    Правда на выходе может появится ошибка с точкой запятой, хоть и не факт :)
     
    Последнее редактирование: 10 июн 2014
  6. DevOrc

    DevOrc Создатель

    Регистр.:
    5 июн 2014
    Сообщения:
    31
    Симпатии:
    10
    Если .html обрабатывается PHP, то:
    Код:
    fwrite($handle, '<div class="message">'. stripslashes(htmlspecialchars($text)) .'<span class="right"><?='.$user_name.'?></span></div>');
    Иначе
    Код:
    fwrite($handle, '<div class="message">'. stripslashes(htmlspecialchars($text)) .'<span class="right">'.$user_name.'</span></div>');
     
  7. xotox

    xotox Постоялец

    Регистр.:
    10 янв 2013
    Сообщения:
    51
    Симпатии:
    3
  8. vlad-online

    vlad-online Создатель

    Регистр.:
    5 авг 2013
    Сообщения:
    34
    Симпатии:
    8
    Не совсем понятно что вы хотите видеть в файле?
    Если:
    Код:
    <div class="message">{текст сообщения}<span class="right">{значение переменной $user_name}</span></div>
    Тогда конечно
    Код:
    fwrite($handle, '<div class="message">'. stripslashes(htmlspecialchars($text)) .'<span class="right">'.$user_name.'</span></div>');
    А если нужно
    Код:
    <div class="message">{текст сообщения}<span class="right"><?php echo $user_name; ?></span></div>
    Тогда:
    Код:
    fwrite($handle, '<div class="message">'. stripslashes(htmlspecialchars($text)) .'<span class="right"><?php echo $user_name; ?></span></div>');