2013-02-28 68 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