所有标题("Location:member.php?id = $ username")都必须是脚本中的第一件事吗?(PHP)

ggf*_*fan 0 php

我知道在Manuel中它说标题必须是脚本中的第一个东西,但是为什么我会看到一些代码,其中标题("Location:member.php?id = $ username")在if语句中?

例如:

//a bunch of codes above

if($result!="0"){ 
// authenication correct lets login
$_SESSION["password"] = $password;;
$_SESSION["username"] = $username;
header("Location: member.php?id=$username");
}
else 
{
    echo "Wrong username or password. Please try again!";
}
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,它有时会/不会引发错误.我如何允许header(); 在脚本中使用没有任何错误?如果用户单击"否",我想将用户重定向回登录,如果他们点击"是",则返回主页.

Thi*_*ira 7

它不一定是脚本中的第一件事.但它必须是您输出给用户的第一件事.在使用标题函数之前,你不能回显东西.如果不这样做,您可以在任何您想要的地方使用它.

您还可以使用ob_start和ob_end_clean"忽略输出".

最好的问候,
T.