php标头位置无法正常工作

php标头位置无法正常工作,php,header,Php,Header,我有以下代码来检测当前登录的用户: $friends = array('1','4'); $user = $_GET['userID']; if(!in_array($user, $friends)){ header('Location: http://example.org/messages'); echo $user; } 在上面,我检查用户是否不在$friends数组中。该用户的id为5,因此不存在 出于某种奇怪的原因,当我回显$user时,这是可行的,但尝试重定向用

我有以下代码来检测当前登录的用户:

$friends = array('1','4');
$user = $_GET['userID'];
if(!in_array($user, $friends)){

    header('Location: http://example.org/messages');
    echo $user;

}
在上面,我检查用户是否不在
$friends
数组中。该用户的id为5,因此不存在

出于某种奇怪的原因,当我回显
$user
时,这是可行的,但尝试重定向用户却行不通


您知道为什么会这样吗?

如果已经向标题发送了其他内容,则无法设置标题

你可以试着把这个放在代码的顶端来刷新OB吗

ob_flush();

您应该在设置重定向头后退出,否则脚本将继续执行,并在浏览器能够对重定向执行操作之前向浏览器发送任何进一步的输出添加错误报告
错误报告(E_ALL);ini设置(“显示错误”,1)很可能,您会收到一条已发送的
标题…
错误消息。我已经顺利地测试过了。