2013-04-01 63 views
0

我有一个会话登录系统的脚本。用户登录后,我存储用户ID,名称和级别。在登录时获取会话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,i'ts能登录B安装。

解决这个问题的方法是添加一个唯一的ID给每个会话。

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

+0

我不明白,你为什么不只是使用会话? –

+0

你的意思是会话ID? – user2112020

+0

不,我的意思是会话。或者会话Id是的,无论如何。我只是看不到你的用例是什么......你究竟在做什么? –

回答

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文件。
  • 将此文件包含在每个需要会话数据的页面中。
0

解决了黑貂Foste建议。

我加入了与用户的唯一ID的列,并检查这一个加载页面时。

查询DB:

// 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; 
}