【发布时间】:2019-12-20 03:44:04
【问题描述】:
我这里有这段代码,尽管我知道它返回 false,但它仍会继续执行下一个代码行。希望有人可以帮助我解决这个问题。
如果用户试图在没有登录的情况下进入这个特定的 php 文件并且用户在会话中不是 id 32,我想把用户赶出去。
if(!isset($_SESSION['username']) && $_SESSION['id'] != 32) {
session_destroy();
echo "<script> alert('Access Denied \nThrowing you out...'); window.location='loginform.php'; </script>";
}
我还使用其他用户回显了会话 ID,它回显了 45,所以我不知道它为什么会继续。
我回显了 !isset($_SESSION['username']) 并在登录时显示 1 所以它是 TRUE 但不应该是 FALSE 因为会话用户名已经设置?
【问题讨论】:
-
如果 userID 被确认为 45,那么第二个语句应该返回 true。所以这意味着第一个语句没有返回 true。所以这意味着 $_Session['username'] 不为空。您可以通过删除“!”来检查这一点。在isset前面再次跑线