加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

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");

邮件实际插入,它通过上面的行,
但浏览器中的网址似乎永远不会改变,最后没有ok参数,

我可以使用会话变量来存储这样的成功/失败参数,但这种方式应该有效

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);

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读