Сталкнулся с проблемой. Допустим на странице есть текстовое поле. Посетитель вводит туда текст нажимает submit и текст идет скрипту-обработчику.... но если после этой операции пользователь перезагрузит страницу нажав "Обновить" в своем браузере тот текст каторый был введен в текстовое поле сного пойдет обработчику хотя посетитель, после перезагрузки, ничего не писал в форме. Как этого избежать? как уничтожить данные после первой отправки? Можно какойнибуть рецепт...
Можно впринципе организовать с помощью сессий. Других способов не придумаю PHP: <?php session_start(); if(isset($_POST['submit']) && $_SESSION['form']) { echo('Вы только что нажали на Submit'); unset($_SESSION['form']); } else { if(isset($_POST['submit'])) { echo('Вы нажали обновить<br />'); } else { $_SESSION['form'] = true; echo('<form method="POST"><input type="submit" value="Submit" name="submit"></form>'); } } ?> Ещё делал когда-то, чтобы автоматически переносило на страницу хидером. Kreker, опередил)
как-то писал для себя класс антифлуда, который как раз предотвращает запись по ф5. могу показать, если интересно.
сам мучаюсь с этим. варианты решения такой проблемы: 1) отправлять через ajax. Если у пользователя отключен JS, то или вообще работать не будет, или будет флуд 2) перенаправлять через html-теги. Если у пользователя отключены редиректы - не поможет 3) header location - не всегда возможно сделать такое. Вот сейчас у меня не получается. 4) возможно как-то через сессии, но это cookies, и опять могут быть ошибки о посланых заголовках. Есть еще какие-то альтернативы?
Если я правильно понял суть вопроса то это делается след. образом: страница1 - на ней форма, при нажатии сабмит все данные отправляются странице2, которая отрабатывает данные и редиректит снова на страницу1. Вариант2: Перед отправкой данных java-script'ом очищать все поля.