@alexmixaylov

Как изменить значение суперглобального массива POST?

Делаю форму и обработчик на одной страничке
<form action="" method="POST">
  <input type="text" class="form-control" id="fio">
  <input type="text" name="posted">
  <button type="submit" class="btn btn-default">Submit</button>
</form>
// и обработчик на этой же странице
// в самом начале делаю проверку, отправлена форма или страница просто загрузилась по ссылке
<?php
if ($_POST['posted']) {
$newFeedback->name = 'Some Name';
$this->save($newFeedback);

// и внимание :)
unset($_POST['posted']); // убираю из массива posted
}

но к сожалению так не работает
при перезагрузки в $_POST['posted'] остается старое значение
  • Вопрос задан
  • 603 просмотра
Решения вопроса 1
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
попробуйте не обновлять страницу через Ctrl R после отправки формы.
Форма каждый раз отправляется...

рукалицо
unset($_POST['posted']); // убираю из массива posted

здесь это вообще не причем, между запросами всегда сбрасывается и без вашей помощи.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Rou1997
@Rou1997
При перезагрузке после того, как отправили форму - снова и снова отправляется тот же самый POST-запрос, поэтому там будет эта переменная, нужно не удалять ее, а сделать редирект, можно делать назад на ту же самую страницу, в любом случае POST-запрос "провалится" в истории браузера и дальнейшее обновление вкладки не будет его повторять, а другого способа очистить историю браузера не существует, переменные PHP с ней напрямую не связаны поэтому их очищать нет смысла, учите матчасть по HTTP.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы