2013-02-28 3 views
0

У меня есть массив сеанса для хранения некоторых данных вPHP: адъюнкт куки сессии с вошедшего пользователя

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

Это относится только для зарегистрированных пользователей, но это, видимо, связано с машинами, а не пользователей. Я тестировал с двумя разными пользователями, и массив имеет одинаковые значения для обоих, вместо того, чтобы быть пустым для второго пользователя. Как связать массив сеанса с каждым зарегистрированным пользователем?

+0

Вы не забыли удалить все данные сеанса при выходе из системы? – user829323

+0

Я только хочу очистить сессию userID при выходе из системы, а не напитки. – junkystu

ответ

1

Вы связать данные для этого конкретного идентификатора пользователя

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

+1, я не думал хранить данные сеанса нескольких пользователей около –

+0

Если я удаляю дубликаты с помощью $ drinks = array_unique ($ _ SESSION ['userID'] ['drinks']); Я получаю rray_unique() ожидает, что параметр 1 будет массивом, указанная строка – junkystu

+0

Это потому, что '$ _SESSION ['userID'] ['drinks']' является строкой и должен быть массивом. Зачем ты это делаешь? – martriay

1

Вы можете очистить сессию или просто перед входом, или после выхода из системы:

session_destroy(); сбросить всю сессию, или

unset($_SESSION['drinks']); для этой конкретной переменной

+0

+1, это тоже хороший вариант, но я не знаю, соответствует ли он требованиям OP – martriay

+0

Да, но я хочу, чтобы этот массив все еще был доступен для первого пользователя, когда он снова входит в систему. – junkystu

Смежные вопросы