php重定向不会更改网址
发布时间:2020-05-26 02:20:07 所属栏目:PHP 来源:互联网
导读:我知道这是一个非常常见的问题,但我找不到答案 我是一个post.php,它将一个帖子表单提交给controller.php 当它正确时,在控制器中它做: header(Location: ./post?ok=1); 邮件实际插入,它通过上面的行, 但浏览器中的网址似乎永远不会改变,最后没有ok参数, 我可
我知道这是一个非常常见的问题,但我找不到答案 我是一个post.php,它将一个帖子表单提交给controller.php header("Location: ./post?ok=1"); 邮件实际插入,它通过上面的行, 我可以使用会话变量来存储这样的成功/失败参数,但这种方式应该有效 post.php中: <form action="controller" method="post"> <input name="test" value='test' type="text" /> <input type="submit" value="post" /> </form> Controller.php这样: <?php header("Location: ./post?ok=1"); ?> 编辑1: header("Refresh:1;url=http://localhost/test/post?ok=1"); //doesn't work better 编辑2: 在post.php上面我放了 debug("post l ".count($_POST)); debug("get l ".count($_GET)); 它们在提交前显示0,在0之后显示0 edit3:它有效 被阻止: if ($success){ header("Location: ./post?ok=1"); } header("Location: ./post"); 应该是: if ($success){ header("Location: ./post?ok=1"); } else { header("Location: ./post"); } thx all 首先你不应该使用$_SERVER [‘HTTP_REFERER’]这是不安全的.此外,客户端可能无论如何都不会发送此标头.现在我不知道如何,但我相信这可以用来劫持你的网站的东西邪恶.最好你应该知道表单数据来自何处并将用户重定向到那里. 顺便说一句,你的重定向可能不会像预期的那样工作,因为网址已经包含了问号.所以你必须添加更多参数和&标志. 对于重定向,我建议HTTP 302 Found响应状态.但你必须确保之前没有其他任何东西发送出去.在此标题行之前必须没有HTML输出或空行: header("Location: http://".$_SERVER['HTTP_HOST']."/your/source.form",true,302); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |