使用此代码尝试显示错误时,页面会重定向到 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();
但是,无论如何,它总是会转到我的帐户谢谢
在你的第一个标题之后,也放exit
。您的代码只是继续,它可能还会发出第二个位置标头,从而否定第一个位置标头。
就像弗里茨说的那样,如果你想看到错误,你必须将错误打印到屏幕上;但是,你不能在header
之前打印出任何HTML,否则header
将无法正常工作。 如果您想在重定向页面上打印错误,那么我建议将错误消息放在$_SESSION
cookie 中,然后在重定向页面上调用并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[]
标记,然后在末尾添加空白""
。