假设名为Michael的用户已注册,并且在我们的数据库中名为users的表中。
Michael 浏览了我的网站,当他这样做时,我从表中删除了他的用户。我的登录系统适用于会话。
从数据库中删除用户 Michael 后,浏览器可以使用“Michael”浏览网站,直到会话结束。
那是因为在会话处理之后,除非您每次都检查,否则它不会改变。
由于查询/请求过多,我的解决方案可能会增加巨大的引擎负载:
在 session.inc.php 添加一个检查器:
if (isset($_SESSION['user']))
{
$check = $pdo->prepare("SELECT * FROM users WHERE user_name = :user")
$check->execute(array( ":user" => $_SESSION['user']));
if (!$check->rowCount())
{
session_destroy();
}
}
它将检查是否存在与他当前使用会话登录的用户名完全相同的行,如果没有,它将破坏会话。
问题:
如果我的网站有很多浏览用户,该解决方案会导致引擎负载过大吗?
有没有更好的方法来做到这一点?