gpt4 book ai didi

header 时忽略 PHP if 语句(位置 : xxx) is inside

转载 作者:行者123 更新时间:2023-12-04 14:56:59 27 4
gpt4 key购买 nike

我有一个奇怪的问题。我的页面顶部有一个 if 语句,当 header(location: xxx) 命令在其中时,它似乎被忽略了。

$check = $authorisation->check(); 
// i know this results in true by echoing the value
// (you've got to believe me on this one)

if(!$check){
// redirect to message
header("Location: message.php");
exit;

}else{
// do nothing, continue with page
}

这总是重定向到 message.php 页面,无论 $authorisation->check() 的结果是什么!

奇怪的是,当我注释掉 header-command 并将 echo 放入 if 语句中进行验证时,一切都按预期工作:

    $check = $authorisation->check(); // true
if(!$check){
// redirect to message
echo "you are not welcome here";
}else{
echo "you may enter";
}

结果是"you may enter";

这也按预期工作:

    $check = true;
if(!$check){
// redirect to message
header("Location: message.php");
exit;

}else{
// do nothing
}

这只会在 $check = false 时重定向到消息页面;

最后一件有趣的事是,我只在一台服务器上遇到过这个问题,同样的脚本在测试服务器上运行完美。

如有任何帮助,我们将不胜感激!

最佳答案

重定向到另一个页面后调用exit函数,否则下面的代码仍然会被执行。

if(!$check){
// redirect to message
header("Location: message.php");
exit;
}else{
// do nothing, continue with page
}
// the following code will be executed if exit is not called
...

关于 header 时忽略 PHP if 语句(位置 : xxx) is inside,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6149941/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com