0

当使用此代码尝试显示错误时,页面将重定向到 myaccount,但仅在必填字段已完成时才应重定向到那里,例如;

如果没有选择birth_country,则会出现错误消息

if(empty($birth_country))
    {
        $err[] = "ERROR - Enter Birth Country";
           header("Location: personal.php?msg=$err[0]");
    }

但如果它被选中,应该重定向到...

header("location: myaccount.php?id=" . $_SESSION['user_id']. "");
exit();

但是无论如何,它总是会转到我的帐户谢谢

4

2 回答 2

1

在你的第一个标题之后exit。您的代码只是继续,它可能还会发出第二个位置标头,否定第一个。

于 2012-04-13T22:12:55.287 回答
0

就像 Frits 说的,如果你想让它被看到,你必须将错误打印到屏幕上;但是,您不能在 a 之前打印出任何 HTML,header否则header将不起作用。如果您想在重定向页面上打印错误,那么我建议将错误消息放入$_SESSIONcookie 中,然后echo在重定向页面上调用该 cookie/变量。但是通过这样做,您需要php session_start()在问题页面的顶部和重定向页面的顶部使用才能使用$_SESSION变量

还有,你的第二header

header("location: myaccount.php?id=" . $_SESSION['user_id']. "");
exit();

应该是这样的:

header("Location: myaccount.php?id=$_SESSION['user_id']")

通过使用双引号,您不需要添加标签,然后在末尾$_SESSION[]添加空白。""

于 2012-04-13T23:22:41.960 回答