Наверное все новички в PHP начинают с "Гостевых книг". Начал и я, разумеется. Сделал. Простейшую, конечно! Но я ведь еще только учусь.
Дык вот, натолкнулся на проблему, как запретить браузеру повторно отправлять данные из формы после нажатия в браузере на кнопку Refresh (Обновить). Поюзал поиск форума и нашел эту тему. Понял решение проблемы, но мне это, к сожалению, не помогло.
Примерный алгоритм моей "Гостевой книги" такой:
1. Вывожу пустые поля формы для ввода данных
(в форме параметр action указывает на этот же самый PHP-файл с моей гостевой, чтобы не городить кучу файлов, То есть, все должно работать в одном файле)
2. Делаю проверку, если c формы данные вводились и была нажата копка "Записать":
if ($_SERVER['REQUEST_METHOD']=='POST') {...}
3. Проверяю и записываю данные в файл Гостевой
4. Прописываю,
КАК ПОСОВЕТОВАЛИ В ЭТОЙ ТЕМЕ, команду:
Header("Location:".$_SERVER['PHP_SELF']);
5. Читаю, форматирую и вывожу на страницу данные из Гостевой книги.
Книга размещена тут:
http://www.slaviksg.tu1.ru/guestbook/index.php
(Другого места для пробы сил в инете не нашел. Вроде там халявно и есть поддержка PHP и MySQL)
Когда я тестирую все это хозяйство, то на строке где прописана команда:
Header("Location:".$_SERVER['PHP_SELF']);
Браузер выдает эту ошибку:
"Warning: Cannot modify header information - headers already sent by (output started at /home/tu1.ru/s/sl/slaviksg/htdocs/www/guestbook/index.php:11) in /home/tu1.ru/s/sl/slaviksg/htdocs/www/guestbook/index.php on line 129"
В результате, когда я жму в браузере "Обновить", то в Гостевую снова и снова записывается таже самая новая запись. И снова и снова выдается эта ошибка.
Не пойму в чем дело. Не пойму почему выдает эту ошибку. Может есть какой-то другой способ не посылать повторно данные в Гостевую после нажатия кнопки "Обновить"? Подскажите новичку, плиииз!!
1