登录时获取会话ID

时间:2013-04-01 14:48:50

标签: php

我有一个会话登录系统的脚本。用户登录后,我存储用户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?

2 个答案:

答案 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']; 
 }
  • 使用上面的内容创建一个新的php文件。
  • 在需要会话数据的每个页面中包含此文件。

答案 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;
}
相关问题