用户身份验证不起作用

User Authentication Not Working

提问人:user4816830 提问时间:5/4/2015 更新时间:5/4/2015 访问量:49

问:

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

  1. 如果会话变量“过期”是过去的,或者用户既不是管理员,也不是登录,则返回登录页面。
  2. 否则,将会话变量“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
    
PHP 会话 服务器端 用户管理

评论

0赞 Eggplant 5/4/2015
为什么要检查你之前是否在生产线上实际使用过它?isset($_SESSION["user_id"])
0赞 Funk Forty Niner 5/4/2015
未定义的常量,如果您一直在使用错误报告,这就是您应该得到的。
0赞 user4816830 5/5/2015
对不起,这是我在 Stack Overflow 上的第一篇文章,我在发布代码的说明方面遇到了麻烦。我在实际脚本上有正确的变量符号“$”。

答:

2赞 user4850985 5/4/2015 #1
if (case1 || case3) {

应该是

if ($case1 || $case3) {

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

案例 2 也应以 $ 开头

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

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

评论

2赞 kainaw 5/4/2015
上面的另一个情况 2 应该是 $case 2。所有变量都以 $ 开头。
1赞 Funk Forty Niner 5/4/2015
“也应该以 $ 开头” - 否则......