
STNC главная |
![]() ![]() ![]() ![]() ![]() ![]() |
Здравствуйте Гость ( Вход | Регистрация ) | Выслать повторно письмо для активации |
![]() ![]() ![]() |
drmist |
Дата 12.07.2007 - 09:23
|
Offline Professional ![]() ![]() ![]() ![]() ![]() Профиль Группа: -users- Сообщений: 1165 Пользователь №: 222 Регистрация: 14.04.2005 Рейтинг: (0%) ![]() ![]() |
В связи с неописуемой фичастостью PHP переменные $id и $_SESSION["id"] считаются в нем одним и тем же сразу после обращения к $_SESSION["id"] или вызова session_register("id").
Вот недавно: классу User приходилось работать с сессиями, а скрипту, который использовал этот класс, с переменной $id. Возникала очень веселая ситуация, когда пользователь высылал себе email для востановления пароля и сразу после этого оказывался залогинившимся. Это происходило из-за того, что скрипт говорил что-то вроде $id = $User->GetId($name, $email); $Mailer->SendCode($id, ...); из-за первой строчки изменялось значение переменной $_SESSION["id"], а так как ненулевое значение этой переменной означает, что пользователь залогинился, скрипт перебрасывал его в панель управления профилем ![]() Проблема решается очень просто - достаточно всем переменным, хронящимся в сессии, прибавлять к имени точку (например $_SESSION[".id"]), ибо врятли мы сможем объявить переменную с таким именем ![]() Вот собственное я и порисовался ![]() -------------------- Когда нельзя еще больше хочется...
|
![]() |
![]() ![]() ![]() |
|