我有一个会话登录系统的脚本。用户登录后,我存储用户ID,名称和级别。
if (!isset($_SESSION)) session_start();
$_SESSION['user_id'] = $result['user_id'];
$_SESSION['user_name'] = $result['user_name'];
$_SESSION['user_level'] = $result['user_level'];
// Redirect
header("Location: dashboard.php"); exit;
现在,我需要在同一台服务器上安装第二个脚本
SCRIPTA
SCRIPTB
如果用户登录SCRIPTA并将URL更改为SCRIPTB,我就可以登录o B安装。
解决此问题的方法是为每个会话添加唯一ID。
但是如何转发和检查页面之间的ID?
答案 0 :(得分:0)
您可能不会尝试
if (!isset($_SESSION))
{
session_start();
$_SESSION['user_id'] = $result['user_id'];
$_SESSION['user_name'] = $result['user_name'];
$_SESSION['user_level'] = $result['user_level'];
}
答案 1 :(得分:0)
解决了Sable Foste的建议。
我为用户添加了一个具有唯一ID的列,并在加载页面时检查此列。
查询数据库:
// Verify hash
$result = mysql_query("SELECT user_hash FROM users WHERE user_id =".$_SESSION['user_id']);
$row = mysql_fetch_array($result, MYSQL_BOTH);
$user_hash = $row['user_hash'];
比较哈希:
if ($_SESSION['user_hash'] != $user_hash) {
header("Location: index.php?error=1"); exit;
}