Сама гостевуха работает, когда её прикручиваю в index.php через include ('guest.php'); Выводит нормально, но после оставления сообщения не может обновиться и ссылается на: Warning: Cannot modify header information - headers already sent by (output started at Z:\home\test1.ru\www\index.php:2) in Z:\home\test1.ru\www\guest.php on line 35 Т.е. на : header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']); Если вернуться назад и обновить , то обновляется сообщения. Что исправить?
Сам пример: guest.php
<?php
// ПЕРЕМЕННЫЕ
$text1 = !empty($_POST['text1']) ? $_POST['text1'] : null;
$text2 = !empty($_POST['text2']) ? $_POST['text2'] : null;
$info = array();
// СКРИПТ
if(!empty($_POST['ok']))
{
if(!$text1)
$info[] = 'Текстовое поле не заполнено.';
if(!$text2)
$info[] = 'Текстовая область не заполнена.';
if(count($info) == 0)
{ // Если файл существует
if(file_exists('text.txt'))
{
// Читаем файл и десериализуем массив
$posts = unserialize(file_get_contents('text.txt'));
// Достаем все ключи в другой массив
$keys = array_keys($posts);
// Вытаскиваем самый большой элемент и увеличиваем на 1
$id = max($keys) + 1;
} // Если файла нет, значит запись № 1
else
$id = 1;
// Устанавливаем новый ключ
$posts[$id]['date'] = date('d-m-Y');
$posts[$id]['name'] = $text1;
$posts[$id]['mess'] = $text2;
file_put_contents('text.txt', serialize($posts));
header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
exit();
}
}
else
$info[] = 'Напишите что-нибудь';
// ОТОБРАЖЕНИЕ
?>
<form action="" method="post">
Логин:<br />
<input name="text1" type="text" value="<?php echo htmlspecialchars($text1) ?>"/><br />
Сообщение:<br />
<textarea name="text2" cols="40" rows="10"><?php echo htmlspecialchars($text2);?></textarea><br />
<input name="ok" type="submit" />
</form>
<?php
echo implode('<br>', $info) .'<br>';
// Если файл существует
if(file_exists('text.txt'))
{ // Читаем файл и десериализуем массив
$array = unserialize(file_get_contents('text.txt'));
// Проходим по массиву циклом, вынимая с каждым витком пару ключ => значение
foreach($array as $id => $post)
{ // Тут уже проходили
$date = $post['date'];
$name = htmlspecialchars($post['name']);
$mess = nl2br(htmlspecialchars($post['mess']));
?>
<div style="border:1px solid; width:70%; background-color:#66FFFF; min-height:100px; margin:5px; padding:5px">
<?php echo $date; ?> / <strong><?php echo $name; ?></strong>
<hr width="30%" align="left" />
<?php echo $mess; ?>
</div>
<?php
}
}
|