<!--гостевая-->
<?php
/**
* The guest book
* Гостевая книга
* @author IT studio IRBIS-team
* @copyright © 2009 IRBIS-team
*/
/////////////////////////////////////////////////////////////////
// VARIABLES
// ПЕРЕМЕННЫЕ
/////////////////////////////////////////////////////////////////
$text1 = !empty($_POST['text1']) ? $_POST['text1'] : null;
$text2 = !empty($_POST['text2']) ? $_POST['text2'] : null;
$info = array();
/////////////////////////////////////////////////////////////////
// SCRIPT
// СКРИПТ
/////////////////////////////////////////////////////////////////
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));
exit();
}
}
else
$info[] = 'Напишите что-нибудь';
/////////////////////////////////////////////////////////////////
// VIEW
// ОТОБРАЖЕНИЕ
/////////////////////////////////////////////////////////////////
?>
<form action="http://test1.ru/index.php?p=guests" 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:#A9A9A9; 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
}
}
Спустя 31 минута, 5 секунд (5.02.2011 - 19:59) waldicom написал(а):
может убрать exit() ?
Спустя 6 минут, 8 секунд (5.02.2011 - 20:05) Andrey65 написал(а):
Дайте пожулуйста пояснение как это работает header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
Спустя 2 минуты, 49 секунд (5.02.2011 - 20:08) Andrey65 написал(а):
когда убрал exit() при обновлении дублирует записи, как избавиться от этого.
Спустя 7 минут, 20 секунд (5.02.2011 - 20:15) Sopromatenot написал(а):
А зачем ты проигнорировал это:
Допиши и запусти.. если есть какаято ошибка, то она будет видна.
header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);
Допиши и запусти.. если есть какаято ошибка, то она будет видна.
Спустя 5 минут, 59 секунд (5.02.2011 - 20:21) Andrey65 написал(а):
Я просто подключил эту гостевую. У меня там уже есть голова, там же и генерируется меню. Не могу по-русски обьяснить проще вам посмотреть
Спустя 32 минуты, 14 секунд (5.02.2011 - 20:54) WTFTW написал(а):
вместо
exit()сделай
exit('<meta http-equiv="refresh" content="0; url=http://' .
$_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . '">');
Спустя 23 минуты, 49 секунд (5.02.2011 - 21:18) Andrey65 написал(а):
Сделал. Происходит редирект на index.php, потом опять надо заходить на гостевую. На примере по которому я делаю там
Как я понял служит для перезагрузки страницы без повторной записи. Если с ней, то выводит ошибку что у меня уже где-то исп-ся header а именно design/header.php
header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
Как я понял служит для перезагрузки страницы без повторной записи. Если с ней, то выводит ошибку что у меня уже где-то исп-ся header а именно design/header.php
Спустя 3 минуты, 48 секунд (5.02.2011 - 21:21) Sopromatenot написал(а):
Цитата (Andrey65 @ 5.02.2011 - 18:18) |
Сделал. Происходит редирект на index.php, потом опять надо заходить на гостевую. На примере по которому я делаю там
Как я понял служит для перезагрузки страницы без повторной записи. Если с ней, то выводит ошибку что у меня уже где-то исп-ся header а именно design/header.php |
Просто нельзя отправить header после каково либо вывода на страницу. А ты уже написал половину шаблона страницы и тебе пишут что мол нельзя:
Warning: Cannot modify header information - headers already sent by ...
Спустя 4 минуты, 52 секунды (5.02.2011 - 21:26) Andrey65 написал(а):
И как мне быть. Смириться с тем, что после отправки перекидывает на главную.? Уже голова не соображает, запутался.
Спустя 2 минуты, 7 секунд (5.02.2011 - 21:28) WTFTW написал(а):
Andrey65 эм.
Спустя 4 минуты (5.02.2011 - 21:32) WTFTW написал(а):
exit('<meta http-equiv="refresh" content="0; url=http://' .
$_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING'] . '">');
Спустя 9 минут, 34 секунды (5.02.2011 - 21:42) Andrey65 написал(а):
Ура!!! Заработало!!! Спасибо WTFTW !!! Хотелось бы самому понять. Где можно почитать проэту конструкцию?
Спустя 4 минуты, 33 секунды (5.02.2011 - 21:46) WTFTW написал(а):
Andrey65 http://www.tigir.com/html.htm.
Но рекомендую почитать про разделение логики и представления. потому что с помощью header('location:'); реально легче работать, да и, по моему, правильней.
Карму ставь, я кармодр*чер .
Но рекомендую почитать про разделение логики и представления. потому что с помощью header('location:'); реально легче работать, да и, по моему, правильней.
Карму ставь, я кармодр*чер .
_____________