0

我有带有会话登录系统的脚本。用户登录后,我存储用户 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 并将 URL 更改为 SCRIPTB,我将无法登录或 B 安装。

解决此问题的一种方法是为每个会话添加一个唯一 ID。

但是如何在页面之间转发和检查ID?

4

2 回答 2

0

你可能不会尝试

  if (!isset($_SESSION)) 
 {
     session_start();
     $_SESSION['user_id'] = $result['user_id'];
     $_SESSION['user_name'] = $result['user_name'];
     $_SESSION['user_level'] = $result['user_level']; 
 }
  • 用上面的内容创建一个新的 php 文件。
  • 将此文件包含在需要会话数据的每个页面中。
于 2013-04-01T15:42:43.203 回答
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;
}
于 2013-04-01T20:32:44.623 回答