2009-06-26 62 views
0

當我登錄時,會生成一個新會話。我怎樣才能知道會話是由哪個登錄生成的?將會話映射到用戶

我正在獲取會話值,但是如何知道會話用於哪個用戶並將其重定向到該頁面?

回答

2

您不想在用戶登錄時創建(新)會話。您可以在每個頁面上創建/恢復會話。

這裏有一些例子分解爲要點。

的login.php

<?php 
session_start(); 
if ($_POST['user'] == 'john' && $_POST['pwd'] == 'password') { 
    $_SESSION['loggedIn'] = true; 
    $_SESSION['firstname'] = 'John'; 
} 
?> 

admin.php的

<?php 
session_start(); 
if (!isset($_SESSION['loggedIn']) || !$_SESSION['loggedIn']) { 
    header('location: login.php'); 
    exit(); 
} 

echo 'Hello ' . $_SESSION['firstname'] . '!'; 
?> 
  • 用戶訪問admin.php的
  • session_start()創建一個新的會話。所有數據($ _SESSION)都存儲在服務器上。具有會話ID的新cookie存儲在客戶端。
  • 用戶被重定向以login.php中沒有$_SESSION['loggedIn']鍵值設爲true
  • session_start()復甦通過cookie瀏覽器
  • 用戶提交表單並驗證發送的會話。在$_SESSION陣列內我們注意到這一點。
  • 用戶返回admin.php,現在可以訪問該頁面。