#forms #post #php #get
В заголовке, просьба, ключевики не править: именно по ним ищут эту функцию 99% людей.
Часто отвечал, что для контроля отправки надо прописывать айдишник сабмита. И вот
что я имел ввиду(решение готовое. Можно брать и юзать):
Проверка:
function accidently_submit_check(){
if(!isset($_POST['submit_id'])){
//unknown submission attempt or no post data
return false;
}
if(!isset($_SESSION['submit_id'][$_POST['submit_id']])){
//unknown submission attempt
return false;
}
if($_SESSION['submit_id'][$_POST['submit_id']]){
//form was already submitted
return false;
}
return true;
}
В функции обработки формы, если все нормально:
$_SESSION['submit_id'][$_POST['submit_id']] = true;
В функции генерации формы:
$form['SUBMIT_ID']['value'] = md5(microtime(true).$_SESSION['user']['id']);
$_SESSION['submit_id'][$form['SUBMIT_ID']['value']] = false;
printf('',$form['SUBMIT_ID']['value']);
Внимание, вопрос: что я упустил?
Все работает, но мало ли.
Ответы
Ответ 1
Ну, содержание первой части заголовка вопроса не совсем соответствует самому вопросу. Очистка $_GET, $_POST производится через header('Location: {referer}'); А то что у вас - немного другое. Вот ещё вариант:
Комментариев нет:
Отправить комментарий