PHP标头位置不正常工作


php header location not working as it should

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

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