我的身份验证/重定向PHP脚本有什么问题?

时间:2015-03-26 16:32:50

标签: php redirect login mysqli login-script

我正在尝试检查用户当前是否已登录,如果没有,则将其重定向到登录页面。

我正在检查他们是否已登录,方法是对我的数据库执行SQL查询,并检查是否有一个用户在我的脚本中有sessionID列,其值等于$sessionID

$sessionID = session_id();

用户点击登录提交表单并使用当前sessionID变量后,列$sessionID会更新。以下是我正在使用的代码行:

登录脚本:

        if(mysqli_num_rows($result) == 1){
            $query = "UPDATE users SET sessionID = '$sessionID' WHERE email = '$loginEmail'";
            mysqli_query($link, $query);
            $isUserLoggedIn = TRUE;
            header('Location: home.php');
        }

$result只是mysqli_query的用户名和密码。 home.php是用户登录后指向的主页。配置/重定向脚本:

    $query = "SELECT FROM users where sessionID = '$sessionID'";
    $result = mysqli_query($link, $query);
    if(mysqli_num_rows($result) == 1){
        $isUserLoggedIn = TRUE;
    }else{
        if(basename($_SERVER['PHP_SELF']) != 'index.php'){
            header('Location: index.php');
        }
    }

现在,当我使用有效的电子邮件/密码组合点击 submit 时,我被重定向回index.php(这是登录页面)。它不是重定向循环所以好像我只是刷新页面。我知道使用sessionID更新数据库中$sessionID的SQL语句正在运行,通过检查数据库进行验证(我使用的是phpmyadmin)。我在这里缺少什么?

0 个答案:

没有答案