2013-04-01 82 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; 
}