我现在已经这样做了一段时间,但在PRG方面仍然感到困惑。我知道它是如何工作的,例如我会这样做:
if($_POST){
header("Location: ".$_SERVER['REQUEST_URI']);
exit();
}
因为它会停止用户刷新并再次将POST发送到服务器。但我一直得到“警告:无法修改标题信息 - 标题已经发送”等等等等等等。我知道这是因为重定向需要在任何空格或回声或文本等之前进行...所以在标题正上方是理想的!
但是如果我的表单被发送到一个没有标题或任何内容的随机.php页面(我可以处理数据和编辑数据库等),这对我来说更有意义 - 但这样我就不能包含任何一个Wordpress功能可以处理我的数据并完成我需要做的事情。就像我会包含几行Wordpress来允许我访问这些功能一样,但这样我就无法处理数据,然后重定向用户。
目前为了解决这个问题,我正在处理数据并使用元刷新进行重定向,我知道这很糟糕!
希望这是有道理的:)任何帮助都会非常感激!
答案 0 :(得分:0)
我不确定这是做什么的正确方法
但通常我使用js重定向echo '<script>window.location="somefile.php";</script>';
避免这个错误
答案 1 :(得分:0)
我通常使用location.replace(URL),因此如果用户点击他们的浏览器,他们就不会被困在重定向迷宫中:
window.location.replace(urlToRedirectTo);