Php 用户身份验证不起作用

Php 用户身份验证不起作用,php,session,server-side,user-management,Php,Session,Server Side,User Management,我有一个PHP用户身份验证脚本,但它运行不正常。我正在尝试执行以下操作: 如果会话变量“expires”在过去,或者用户既不是管理员也没有登录,则返回登录页面 否则,将会话变量“expires”设置为time()+300并重定向到主页 $case1 = (isset($_SESSION["expires"]) && $_SESSION["expires"] > time()); $case2 = ($_SESSION["user_id"] == "ADMIN" || $_S

我有一个PHP用户身份验证脚本,但它运行不正常。我正在尝试执行以下操作:

  • 如果会话变量“expires”在过去,或者用户既不是管理员也没有登录,则返回登录页面
  • 否则,将会话变量“expires”设置为time()+300并重定向到主页

    $case1 = (isset($_SESSION["expires"]) && $_SESSION["expires"] > time());
    $case2 = ($_SESSION["user_id"] == "ADMIN" || $_SESSION["user_id"] != "");
    $case3 = (isset($_SESSION["user_id"]) && (case2));
    
    if (case1 || case3) {
        // redirect to home page
    }
    else // redirect to login page
    
  • 应该是

    if ($case1 || $case3) {
    

    案例2也应该从一个$

    $case3 = (isset($_SESSION["user_id"]) && ($case2));
    

    就像创建变量一样,使用变量时,它应该以$

    开头,上面的另一个case2应该是$case2。所有变量都以$开头。“也应该以$”开头-在您之前在行中实际使用过它之后,为什么要检查
    isset($\u SESSION[“user\u id”])
    ?对不起,这是我第一次发布堆栈溢出,我对发布代码的说明有问题。我的实际脚本上有正确的变量符号“$”。
    $case3 = (isset($_SESSION["user_id"]) && ($case2));
    
    $case3 = (isset($_SESSION["user_id"]) && ($case2));