Как очистить $_POST после загрузки страницы?

Всем привет, не могу очистить $_POST после загрузки страницы.

Форма - Передача $_POST на саму себя - После чего работает скрипт, и нужно чтобы при обновлении страницы $_POST очистился, пробовал unset не помогает. Как сделать чтобы $_POST работал только на 1 загрузку страницы?
  • Вопрос задан
  • 35793 просмотра
Решения вопроса 2
@codercat
Вообще, попробовать сделать редирект на тот же урл, если я правильно понял вашу проблему.
Например:
header('Location: /test.php');
Ответ написан
@mayken
<?session_start();?>
<form action="" method="post">
	<input type="submit" name="send">
</form>
<?
if(isset($_POST['send']))
{
    // Если нет ошибок
    if(true)
    {
        $_SESSION['flash'] = 'Запись добавлена';
        // обновление страницы
        header("Location: ".$_SERVER['REQUEST_URI']);
    }
}else{
    // Обычный GET запрос
    if(!empty($_SESSION['flash']))
    {
        print $_SESSION['flash'];
        unset($_SESSION['flash']);
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
hell0w0rd
@hell0w0rd
Просто разработчик
Почитайте http спецификацию. $_POST - всего лишь переменная наполняемая php при очередном запросе. Если на POST запрос приходит 200 ответ - браузер сохраняет ранее отправленные данные, чтобы отправить их еще раз до GET запроса.
А то что у вас ошибка вываливается - ищите, где вы вызываете echo, или любую другую функцию, отправляющую информацию в php://stdout
Ответ написан
Редирект на эту же страницу после POST запроса.
Ответ написан
Комментировать
Quber
@Quber
PHP Team lead
Могу ошибаться, но попробуйте так unset($_POST);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы