Проблема с echo

Eight bits

Постоялец
Регистрация
28 Окт 2011
Сообщения
124
Реакции
19
Добрый вечер 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);
?>
 
Вам не кажется, что нельзя внутрь функции, которая записывает что-то в файл вставлять другую функцию, которая в момент вызова что-то выводит на экран?
Попробуйте так:
Код:
<?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);
?>
 
Вам не кажется, что нельзя внутрь функции, которая записывает что-то в файл вставлять другую функцию, которая в момент вызова что-то выводит на экран?
Попробуйте так:
Код:
<?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);
?>

без echo не выводит имя пользователя...
 
без echo не выводит имя пользователя...
Вам же не выводить имя пользователя, а записать в файл его нужно.
Ну надо вывести — сделайте так:
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 не функция. Это конструкция языка, и она ничего не возвращает.
 
Последнее редактирование:
А можно глянуть на полный код и полный код ошибки?

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

Насколько я вижу суть проблемы, то код твой интерпритируется так:
Код:
<?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);
?>
Правда на выходе может появится ошибка с точкой запятой, хоть и не факт :)
 
Последнее редактирование:
Если .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>');
 
Не совсем понятно что вы хотите видеть в файле?
Если:
Код:
<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>');
 
Назад
Сверху