【发布时间】:2016-03-03 03:17:15
【问题描述】:
我有一个简单的 PHP 和 MySQL 站点,它从数据库验证用户,然后为会员编号、名字和姓氏设置 $_SESSION 变量。
今天,在线网络研讨会结束后,多个成员同时登录以记录活动,当导航到不同页面时,其他成员的名字出现了(名字使用 php echo 显示为 $_SESSION[fname] 和 [lname ])。我以前从未见过这种情况,我最近更新了我的代码以使用 PDO 语句等,但仅用于数据库查询,我没有改变 $_SESSIONs 的启动或处理方式,所以我认为这与它。
我已经尝试通过使用测试帐户从两个不同的浏览器登录来对此进行测试,但只是弄乱了几次,然后它又可以正常工作了。
怎么会这样?有人可以建议一种方法来防止这种情况发生吗?任何帮助将不胜感激。
我的会话代码如下:
<?php session_start(); ?>
<?php if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 600)) {
// last request was more than 10 minutes ago
session_unset(); // unset $_SESSION variable for the run-time
session_destroy(); // destroy session data in storage
}
$_SESSION['LAST_ACTIVITY'] = time(); // update last activity time stamp ?>
【问题讨论】: