0

我已经这样做了一段时间,但在涉及 PRG 时仍然感到困惑。我知道它是如何工作的,例如我会这样做:

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

}

因为它会停止用户刷新并再次将 POST 发送到服务器。但我不断收到“警告:无法修改标头信息 - 标头已发送”等等消息。我知道这是因为重定向需要在任何空格或回显或文本等之前进行......所以在标题上方将是理想的!

但是如果我的表单被发送到一个没有标题或任何东西的随机 .php 页面(我可以在其中处理数据和编辑数据库等),这对我来说更有意义 - 但这样我就不能包含任何 Wordpress 功能处理我的数据并做我需要做的事情。就像我会包含几行 Wordpress 以允许我访问这些功能,但是这样我就无法处理数据然后重定向用户。

目前为了解决这个问题,我正在处理数据并使用元刷新来重定向,我知道这很糟糕!

希望这是有道理的 :) 任何帮助将不胜感激!

4

2 回答 2

0

我不确定这样做的正确方法是什么

但通常我使用 js 重定向echo '<script>window.location="somefile.php";</script>'; 来避免这个错误

于 2013-01-05T20:25:21.180 回答
0

我通常使用 location.replace(URL) 所以如果用户回击他们的浏览器,他们不会被困在重定向迷宫中:

window.location.replace(urlToRedirectTo);
于 2014-08-22T15:07:09.613 回答