问题说明
我已经创建了我的第一个会话的登录名。基本上我有 3 个输入,2 个字段,一个提交。
第一个字段是用户名,第二个字段是密码。
然后我使用 PDO 从用户表 WHERE = 用户名中选择用户名、密码来验证详细信息。
然后我计算行数,看看是否有指定用户名和密码的行。
太好了,我现在登录了..
但是有问题.. 当我从数据库中删除用户时,我可以继续使用同一个用户在我的系统中浏览,直到会话结束或我注销。
问题
如何立即检查用户是否仍在数据库中?每次用户进入新页面或刷新时,最好的方法是什么?
谢谢!
创建会话的代码(登录验证):
# Selecting the entered username + password from our admins database & making sure field
# with that specify username and password exists.
$hashed = hash('sha512', md5($password));
$check = $CONNECT_TO_DATABASE->prepare("SELECT * FROM admin WHERE username = :username AND password = :password LIMIT 1");
$check->bindValue(':username', $username);
$check->bindValue(':password', $hashed);
$check->execute();
# We check if that row exists, if it exists - We will create a new session with that entered
# username, that means administrator has sucessfuly logged in.
if ($check->rowCount()) {
$_SESSION['user'] = $username;
header ('Location: index.php');
} else {
# If login failed, because the details are wrong, we will store the error message into
# our errors array and then use a loop to fetch the error.
if (!empty($username) && !empty($password)) {
$errors[] = 'Wrong username or password.';
}
}
然后我用它来查看用户是否登录:
if (isset($_SESSION['user'])) {