Цитата (VeRTak @ 26.04.2017 - 12:56) |
Отработал скрипт, далее redirect. Попали на страницу какую нужно, уже с пустым постом. Что не так? Или я где то не так понимаю |
Цитата (AllesKlar @ 26.04.2017 - 15:07) |
При такой структуре у тебя должно быть три скрипта (или логических блока, не суть важно) 1. - Форма 2. - Обработчик формы 3. - Обязательный скрипт-приемник, куда нужно будет прыгнуть, дабы убить POST |
<?php
// обработчик тут же, где и форма, в одном файле - это намного удобнее
if (была отправлена форма) {
... // обрабатываем данные
...
if (если обработка успешна) {
header("refresh: 10, url=этот же файл");
echo ... // выводим какую-нибудь инфу о том, что данные приняты
// и сейчас произойдет автоматический возврат назад;
// можно сделать на JS обратный отсчет и также ссылку для прямого перехода
exit(); // этот также важно тут, чтобы всякая лабуда, что ниже в коде, вообще не выводилась в браузер
}
}
?>
<!doctype html>
...
<body>
<form ....>
...
</form>
....
Цитата (sergeiss @ 26.04.2017 - 16:46) |
Вот примерно так код получается (всё в одном скрипте!!!): |
Цитата (AllesKlar @ 26.04.2017 - 13:20) |
Пока будет "подождите", я яваскриптом обновлю 100500 раз страницу и засру всю базу. |
<?php
$token = md5(microtime(true));
if (isset($_COOKIE['token'], $_POST['token']) && $_COOKIE['token'] === $_POST['token']) {
// Обработка
setcookie('token', $token, time() + 100500);
header('location: /'); // Можно вернуть обратно, если другой обработчик
exit();
}
setcookie('token', $token, time() + 100500);
?>
<form action="" method="post">
<input name="token" type="hidden" value="<?=$token;?>" />
<input name="text" type="text" value="" /><br />
<input name="go" type="submit" value="Go!" />
</form>