Использование Post / Redirect / Get с данными перед мета-обновлением перенаправления?

Я занимаюсь этим уже некоторое время, но все еще не понимаю, что касается PRG. Я знаю, как это работает, поэтому, например, я бы сделал:

if($_POST){
 header("Location: ".$_SERVER['REQUEST_URI']);
 exit();

}

Потому что он останавливает обновление пользователя и повторную отправку POST на сервер. Но я продолжаю получать сообщение «Предупреждение: невозможно изменить информацию заголовка - заголовки уже отправлены». Я знаю, что это связано с тем, что перенаправление должно выполняться до любых пробелов, эха, текста и т. Д., Так что прямо над заголовком было бы идеально!

Но если моя форма отправляется на случайную страницу .php без заголовка или чего-то еще (где я могу обрабатывать данные, редактировать базу данных и т. Д.), Это имеет для меня больше смысла, но таким образом я не могу включить какие-либо функции Wordpress в обрабатывать мои данные и делать то, что мне нужно. Я хотел бы включить несколько строк Wordpress, чтобы позволить мне получить доступ к функциям, но таким образом я не могу обработать данные и ЗАТЕМ перенаправить пользователя.

В настоящий момент, чтобы обойти это, я обрабатываю данные и использую мета-обновление для перенаправления, и я знаю, что это ПЛОХО!

Надеюсь, это имеет смысл :) Любая помощь будет очень признательна!


person JamesG    schedule 05.01.2013    source источник


Ответы (2)


Я не уверен, как правильно это сделать

но обычно я использую перенаправление js echo '<script>window.location="somefile.php";</script>';, чтобы избежать этой ошибки

person Khalil Awada    schedule 05.01.2013

Я обычно использую location.replace (URL), поэтому, если пользователь откроет свой браузер, он не попадет в лабиринт перенаправления:

window.location.replace(urlToRedirectTo);
person centarix    schedule 22.08.2014