Forum Webscript.Ru
Программирование => PHP => Тема начата: 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;
Все отрабатывает как надо, только в том случае, если я после первой регистрации закрыл Эксплорер.
А если нет - то прежняя сессия остается, а новая не стартуется.
-
Sniper:
в нее записывается $uid (номер сессии)
зачем?
Sniper:
переменные сессии "забывались" (не удалялись), а вместо этих, заводилась бы новая сессия с новыми переменными.
так что тебе, все-таки, надо?
чтобы переменные забывались, или чтобы сессия новая стартовала?
Зачем такие извращения?
почему бы просто не записать новое имя в сессию?
-
то есть, проблемы твои - от неправильного алгоритма.
а то, что ты пользуешься устаревшей функцией, не умея при этом - это уже только усугубляет твои проблемыю
-
то есть, проблемы твои - от неправильного алгоритма.
а то, что ты пользуешься устаревшей функцией, не умея при этом - это уже только усугубляет твои проблемыю
мне нужен не алгоритм, мне нужно узнать почему сессия не удаляется.
-
сессия не может удалиться.
Сессия - это сеанс работы с сайтом.
Постарайся выражаться более внятно.
Пока у тебя звучит так: "я стартую сессию, и пишу сессию в сессию."
А на счет алогоритма ты ох, как неправ...
Алогоритмы не любят такого отношения. И жестоко тебе отомстят
-
попробую выразиться подругому.
Мне нужно изменить идентификатор сессии.
-
Попробую повторить еще раз - тебе это не нужно.
=)
-
ты прав на счет алгоритма.
а как сделать так, чтобы при запушенной сессии запускалась еще одна.
Стуация такая: зарегистрированный пользователь, которому запущена сессия пытается зарегистрироваться еще раз с другим именем и т.д.
я пробовал так:
session_start();
session_unregister("valid_user", "nick");
session_destroy();
session_start();
session_register("valid_user", "nick");
И нифига! Новая сессия не стартуется.
Все пишется в уже открытую
-
надо так:
session_start();
unset($_SESSION[\'valid_user\']);
$_SESSION = array(); //что есть SESSION знаешь?
session_destroy();
session_start();
$_SESSION[\'valid_user\'] = \'nick\';
Мало того, как Ромик говорит, алгоритм кривой, так ещё и учишся по устаревшему метериалу.
FAQ: Session (http://phpfaq.ru/sessions)
-
Sniper:
а как сделать так, чтобы при запушенной сессии запускалась еще одна.
господи, ну и бред.
ну когда ж вы поймете, что такое сессия?
Какая "еще одна"? Куда тебе больше одной?
Алексей:
Стуация такая: зарегистрированный пользователь, которому запущена сессия пытается зарегистрироваться еще раз с другим именем и т.д.
Ну и какая проблема записать в сессию новое имя?
НЕ СТАРТОВАТЬ НОВУЮ сессию.
НЕ РЕГИСТРИРОВАТЬ НОВУЮ переменную.
А просто присвоить существующей переменной в существующей сессии другое значегие?
Алексей
твои телодвижения тоже весьма туманны.