Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: После отправки методом post, при обновлении, отправляется повторно. Как исправить это?
Форумы портала PHP.SU » » Вопросы новичков » После отправки методом post, при обновлении, отправляется повторно. Как исправить это?

Страниц (1): [1]
 

1. Проклятый принц - 18 Июня, 2013 - 08:39:31 - перейти к сообщению
Добрый день, господа. Столкнулся с неприятной вещью: После отправки методом post, при обновлении, отправляется повторно. Как исправить это?
2. LIME - 18 Июня, 2013 - 08:43:19 - перейти к сообщению
после обработки пост делай редирект
например
PHP:
скопировать код в буфер обмена
  1. if($_POST...){
  2. //...
  3. //...
  4. header('Location: /forum.php');
  5. }
3. Проклятый принц - 18 Июня, 2013 - 09:12:20 - перейти к сообщению
Ругается, мол, заголовки уже были отправлены.
Поставил в самое начало, но уже ругается по другой причине, мол, классы (user, forum) не видит.
4. Panoptik - 18 Июня, 2013 - 09:14:57 - перейти к сообщению
про классы это наугад ничего сказать нельзя, а по поводу первой ошибки, можно просто убрать любой вывод при редиректе (пустые строки в начале файлов, любые вызовы echo, print, var_dump, print_r...
5. Проклятый принц - 18 Июня, 2013 - 09:23:33 - перейти к сообщению
Эм, решил эту проблему вот так:

Редиректа поставил при обработке post в самом начале, но без exit, а в середине такой же обработчик Post, но без редиректа. Вся отлично работает, но я боюсь, не будет ли утечки ресурсов? Как оцениваете такой механизм. Мне он не нравится, но вполне работает.
(Добавление)
А на счёт классов, то там есть операторы echo. Поэтому пришлось устраивать такой геморрой.

 

Powered by ExBB FM 1.0 RC1