Forum Webscript.Ru

Программирование => PHP => Тема начата: Sniper от 09 Ноября 2004, 16:44:13

Название: Про сессии
Отправлено: Sniper от 09 Ноября 2004, 16:44:13
тема такая.
делаю регистрацию пользователей.
Происходит все так: при после отправки формы регистрируется сессия, в нее записывается $uid (номер сессии) и $valid_user ("1").
Мне надо, чтобы при попытке повторно зарегистрироваться переменные сессии "забывались" (не удалялись), а вместо этих, заводилась бы новая сессия с новыми переменными.

Делаю так:

session_start();
session_unregister("valid_user", "uid");
session_destroy();
unset($valid_user, $uid);
session_start();
$id = session_id();
session_register("valid_user", "uid");
$valid_user = 1;
$uid = $id;
 

Все отрабатывает как надо, только в том случае, если я после первой регистрации закрыл Эксплорер.
А если нет - то прежняя сессия остается, а новая не стартуется.
Название: Про сессии
Отправлено: Меняздесьдавнонет от 09 Ноября 2004, 18:02:56
Цитировать
Sniper:
в нее записывается $uid (номер сессии)

зачем?
Цитировать
Sniper:
переменные сессии "забывались" (не удалялись), а вместо этих, заводилась бы новая сессия с новыми переменными.

так что тебе, все-таки, надо?
чтобы переменные забывались, или чтобы сессия новая стартовала?

Зачем такие извращения?
почему бы просто не записать новое имя в сессию?
Название: Про сессии
Отправлено: Меняздесьдавнонет от 09 Ноября 2004, 18:10:29
то есть, проблемы твои - от неправильного алгоритма.
а то, что ты пользуешься устаревшей функцией, не умея при этом - это уже только усугубляет твои проблемыю
Название: Про сессии
Отправлено: Sniper от 09 Ноября 2004, 20:11:36
Цитировать
то есть, проблемы твои - от неправильного алгоритма.
а то, что ты пользуешься устаревшей функцией, не умея при этом - это уже только усугубляет твои проблемыю


мне нужен не алгоритм, мне нужно узнать почему сессия не удаляется.
Название: Про сессии
Отправлено: Меняздесьдавнонет от 10 Ноября 2004, 00:03:06
сессия не может удалиться.
Сессия - это сеанс работы с сайтом.
Постарайся выражаться более внятно.
Пока у тебя звучит так: "я стартую сессию, и пишу сессию в сессию."

А на счет алогоритма ты ох, как неправ...
Алогоритмы не любят такого отношения. И жестоко тебе отомстят
Название: Про сессии
Отправлено: Sniper от 10 Ноября 2004, 10:30:14
попробую выразиться подругому.
Мне нужно изменить идентификатор сессии.
Название: Про сессии
Отправлено: Меняздесьдавнонет от 10 Ноября 2004, 13:13:27
Попробую повторить еще раз - тебе это не нужно.
=)
Название: Про сессии
Отправлено: Sniper от 10 Ноября 2004, 14:15:33
ты прав на счет алгоритма.
а как сделать так, чтобы при запушенной сессии запускалась еще одна.
Стуация такая: зарегистрированный пользователь, которому запущена сессия пытается зарегистрироваться еще раз с другим именем и т.д.
я пробовал так:

session_start();
session_unregister("valid_user", "nick");
session_destroy();
session_start();
session_register("valid_user", "nick");

И нифига! Новая сессия не стартуется.
Все пишется в уже открытую
Название: Про сессии
Отправлено: Алексей от 10 Ноября 2004, 14:30:51
надо так:


session_start();
unset($_SESSION[\'valid_user\']);
$_SESSION = array(); //что есть SESSION знаешь?
session_destroy();
session_start();
$_SESSION[\'valid_user\'] = \'nick\';
 

Мало того, как Ромик говорит, алгоритм кривой, так ещё и учишся по устаревшему метериалу.
FAQ: Session (http://phpfaq.ru/sessions)
Название: Про сессии
Отправлено: Меняздесьдавнонет от 10 Ноября 2004, 17:33:59
Цитировать
Sniper:
а как сделать так, чтобы при запушенной сессии запускалась еще одна.

господи, ну и бред.
ну когда ж вы поймете, что такое сессия?
Какая "еще одна"? Куда тебе больше одной?
Цитировать
Алексей:
Стуация такая: зарегистрированный пользователь, которому запущена сессия пытается зарегистрироваться еще раз с другим именем и т.д.

Ну и какая проблема записать в сессию новое имя?
НЕ СТАРТОВАТЬ НОВУЮ сессию.
НЕ РЕГИСТРИРОВАТЬ НОВУЮ переменную.
А просто присвоить существующей переменной в существующей сессии другое значегие?

Алексей
твои телодвижения тоже весьма туманны.