在我看来,基于安全性,有几种方法可以做到这一点,最好的方法是: 注意:这真的很粗糙......我知道语法是错误的,它只是让你得到一个想法。
$con = mysql_connect("localhost","sampleuser","samplepass");
if (!$con)
{
$error = "Could not connect to server";
}
mysql_select_db("sampledb", $con);
$result = mysql_query("SELECT * FROM `sampletable` WHERE `username`='".$_SESSION['user_id']."'");
$userdeets = mysql_fetch_array($result);
if($_SESSION['sessionvalue'] != $userdeets['sessionvalue'])
{
session_destroy();
Header('Location: logout.php');
}
else
{
$result2 = mysql_query("UPDATE `sessionvalue` WHERE `username`='".$_SESSION['user_id']."' SET `sessionvalue` = RANDOMVALUE''");
$sesval = mysql_fetch_array($result2);
$_SESSION['sessionvalue'] = $seshval
}
现在我知道那不是代码,但本质上你需要做的是确保安全并拥有这种能力:
- 每次页面加载检查会话值与数据库中的值匹配。
- 每次页面加载时,都会根据随机生成的 DB 值设置一个新的会话值。您还需要将用户名存储在会话中。
- 如果会话 ID 不匹配,则销毁会话并重定向它们。
- 如果匹配,则创建新的会话 ID。
如果你想禁止一个用户,你可以将他们在数据库中的 sessionvalue 设置为“BANNED”之类的值。这个值也不允许他们登录。通过这种方式,您可以通过简单的 Web 表单控制用户,还可以非常轻松地生成被禁止用户列表等。我希望我有更多时间来解释它,希望对您有所帮助。