Опубликовать данные и обновить страницу - PullRequest
3 голосов
/ 25 марта 2011

У меня есть страница формы для редактирования сообщений на моем сайте.Он использует метод записи на той же странице.Если форма скомпилирована правильно, отображается сообщение с поздравлениями.

Проблема:

Когда пользователь нажимает кнопку обновления, скрипт пытается повторно отправить данные на страницу.Есть ли способ избежать этого?

спасибо

Лука

Ответы [ 3 ]

8 голосов
/ 25 марта 2011

Общая схема шаблона PRG такова:

if ( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
     /// do your magic

     $_SESSION['error'] = "Thanks for your message!";

     // this should be the full URL per spec, but "/yourscript.php" will work
     $myurl = ...;

     header("Location: $myurl");
     header("HTTP/1.1 303 See Other");
     die("redirecting");
}

if ( isset($_SESSION['error']) )
{
     print "The result of your submission: ".$_SESSION['error'];
     unset($_SESSION['error']);
}
1 голос
/ 25 марта 2011

Вам необходимо использовать шаблон PRG .

0 голосов
/ 25 марта 2011

Это называется шаблоном Post / Redirect / Get . Вы делаете это, отвечая на POST-запрос перенаправлением 302/303, что предотвращает такое неприятное поведение на клиенте.

Подробнее об этом можно прочитать по ссылке, которую я разместил выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...