检查会话ID是否等于特定值

时间:2019-12-20 03:44:04

标签: php session

我在这里有此代码,尽管我知道返回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,因为已经设置了会话用户名吗?

4 个答案:

答案 0 :(得分:1)

您好,您可以检查会话中是否存在ID,并且ID是否等于32。希望下面的代码适合您。

if(!isset($_SESSION['id']) && $_SESSION['id'] != 32) { 
   session_destroy();
   echo "<script> alert('Access Denied \nThrowing you out...');window.location='loginform.php'; </script>";
 }

答案 1 :(得分:0)

尝试这样

if(!isset($_SESSION['username']) || $_SESSION['id'] != 32) 
{ 
  session_destroy();
  echo "<script> alert('Access Denied \nThrowing you out...'); 
  window.location='loginform.php'; </script>";
}

答案 2 :(得分:0)

请尝试这个

if(!isset($_SESSION['username']) && $_SESSION['id'] != 32) { 
    session_destroy();

    echo "<script> alert('Access Denied \nThrowing you out...');
     header("location:loginform.php");
    exit();
}

答案 3 :(得分:0)

您可以检查会话ID是否等于32,并且ID是否存在:

if(!isset($_SESSION['id']) && $_SESSION['id'] != 32) { 
    session_destroy();
    echo "<script> alert('Access Denied \nThrowing you out...');
                window.location.href = 'loginform.php'; </script>";        
}