Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > PHP: Вопрос про unset () и сессий


Автор: web_VIP 29.12.2007, 11:48
У меня возник вопрос как разрегистрировать несколько сессий. 
Одну сессию можно разрегистрировать так: Код: 
unset($_SESSION['session_name']); 
, а вот как разрегистрировать 2 или более сессий что то не пойму, может подскажете?

Автор: skyboy 29.12.2007, 12:03
Цитата(web_VIP @  29.12.2007,  10:48 Найти цитируемый пост)
Одну сессию можно разрегистрировать так: Код: unset($_SESSION['session_name']); 

это не "разрегистрация сессии". это "удаление" переменной сессии.
может, расскажешь не что, а зачем тебе надо?

Автор: GZep 29.12.2007, 13:32
bool session_destroy();//уничтожает хранилище сессии, но массив $_SESSION не уничтожается

Полное удаление сессии:
Код

$_SESSION = array();//очищаем массив
@unset($_COOKIE[session_name()]);//удаляем куки, соответствующие SID (session id)
session_destroy();//уничтожает хранилище сессии

Автор: FractalizeR 29.12.2007, 19:28
Цитата(skyboy @ 29.12.2007,  12:03)
Цитата(web_VIP @  29.12.2007,  10:48 Найти цитируемый пост)
Одну сессию можно разрегистрировать так: Код: unset($_SESSION['session_name']); 

это не "разрегистрация сессии". это "удаление" переменной сессии.
может, расскажешь не что, а зачем тебе надо?

Это не удаление переменной сессии, это ужас какой-то smile session_name я так понимаю, должно было символизировать текущую сессию. Т.е. web_VIP скорее всего предполагает, что $_SESSION хранит вообще все сессии, а не только текущую. Отсюда и его вопрос: как удалить все остальные smile)

Автор: web_VIP 31.12.2007, 12:55
Цитата(FractalizeR @ 29.12.2007,  19:28)
Это не удаление переменной сессии, это ужас какой-то smile session_name я так понимаю, должно было символизировать текущую сессию. Т.е. web_VIP скорее всего предполагает, что $_SESSION хранит вообще все сессии, а не только текущую. Отсюда и его вопрос: как удалить все остальные smile)

Хоть кто то меня понял smile, но так никто и не ответил :-(, поясняю вопрос, у меня например есть 5 сессий:
Код
$_SESSION['text_1'];
$_SESSION['text_2'];
$_SESSION['text_3'];
$_SESSION['text_4'];
$_SESSION['text_5'];

Мне нужно удалить(разрегистрировать) все сесиий, кроме:
Код
$_SESSION['text_2'];








Автор: FractalizeR 31.12.2007, 18:10
Цитата

$_SESSION['text_1'];
$_SESSION['text_2'];
$_SESSION['text_3'];
$_SESSION['text_4'];
$_SESSION['text_5'];


Это не пять сессий, а пять переменных в одной и той же сессии. Пожалуйста, прочитайте документацию по сессиям  и вам все станет понятно. Для уничтожения переменной внутри сессии можно использовать unset(). Т.е. в вашем случае
Код

unset($_SESSION['text_1']);
unset($_SESSION['text_3']);
unset($_SESSION['text_4']);
unset($_SESSION['text_5']);

Автор: web_VIP 3.1.2008, 15:34
Не, народ, вы чего смеетесь чтоли, вроде первое апреля еще далеко, каждый раз кто то пишет одно и тоже, но на вопрос мне так и не ответил, я спросил как удалить из 5 переменных 4.
Но не так:
Код

unset($_SESSION['text_1']);
unset($_SESSION['text_3']);
unset($_SESSION['text_4']);
unset($_SESSION['text_5']);

а как нить в одном unset это можно сделать?

Автор: skyboy 3.1.2008, 15:37
Код

foreach($_SESSION as $key => $value) {
 if($key !== 'text_2')
 unset($_SESSION[$key]);
}

никак не могу себе представить, зачем подобное может быть нужно?

Автор: FractalizeR 3.1.2008, 16:23
Цитата(web_VIP @ 3.1.2008,  15:34)
Не, народ, вы чего смеетесь чтоли, вроде первое апреля еще далеко, каждый раз кто то пишет одно и тоже, но на вопрос мне так и не ответил, я спросил как удалить из 5 переменных 4.
Но не так:
Код

unset($_SESSION['text_1']);
unset($_SESSION['text_3']);
unset($_SESSION['text_4']);
unset($_SESSION['text_5']);

а как нить в одном unset это можно сделать?

Это вы над нами смеетесь. Что, трудно мануал по PHP открыть?

Код

unset($_SESSION['text_1'], $_SESSION['text_3'], $_SESSION['text_4'], $_SESSION['text_5']);


Какая разница, в одном операторе это делать или в нескольких? Вы можете толком объяснить, что вам нужно?

skyboy:
Оператор unset допускает указание нескольких переменных.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)