2013-02-28 106 views
0

副會話cookie我有PHP:與登錄用戶

if(isset($_SESSION['userID'])){ 
     if (!isset($_SESSION['drinks'])) { 
     $_SESSION['drinks'] = array(); 
     }} 

這僅適用於已登錄的用戶,但它顯然與機器,而不是用戶相關的會話陣列來存儲一些數據。我已經用2個不同的用戶進行了測試,數組對第二個用戶保持相同的值而不是空的。 如何將會話數組與每個登錄用戶相關聯?

+0

您是否記得在註銷時刪除所有會話數據? – user829323 2013-02-28 23:57:35

+0

我只想在註銷時清除用戶ID會話,而不是飲料。 – junkystu 2013-03-01 00:15:15

回答

1

您的數據關聯到特定的用戶ID

if(isset($_SESSION['userID'])){ 
    if (!isset($_SESSION['userID']['drinks'])) { 
    $_SESSION['userID']['drinks'] = array(); 
    } 
    var_dump($_SESSION['userID']['drinks']); 
} 
+0

+1,我沒有考慮保留多個用戶的會話數據約 – 2013-02-28 23:59:26

+0

如果我消除 $ drinks = array_unique($ _ SESSION ['userID'] ['drinks'])的重複項, 我得到rray_unique()期望參數1是數組,字符串給出 – junkystu 2013-03-01 00:22:58

+0

這是因爲'$ _SESSION ['userID'] ['drinks']'是一個字符串,應該是數組。你爲什麼這樣做? – martriay 2013-03-01 00:26:14

1

你可以清除會話要麼只是登錄前,或註銷後:

session_destroy();重置整個會話,或

unset($_SESSION['drinks']);對於那個特定變量

+0

+1,這也是一個不錯的選擇,但我不知道它是否適合OP需要 – martriay 2013-02-28 23:59:02

+0

是的,但我希望該數組仍然可供第一個用戶使用他再次登錄。 – junkystu 2013-03-01 00:14:20