我正在尝试检查用户当前是否已登录,如果没有,则将其重定向到登录页面。
我正在检查他们是否已登录,方法是对我的数据库执行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)。我在这里缺少什么?