Странная проблема с сессиями. Загадочная надпись 'deleted'

Сенсей

Новичок
Странная проблема с сессиями. Загадочная надпись 'deleted'

Есть портал. На портале авторизация на сессиях...

Теперь... есть запрос -

PHP:
sql_query("update ".$prefix."_users set user_last_visit=NOW(),
 user_ip='".$user_ip."',
 user_session_id='".session_id()."'
 where user_id='".USER_ID."'", $dbi);

Вроде все работает отлично... но... у некоторых юзеров в базе в поле user_session_id содержится слово "deleted"

Как такое может быть? Обратил внимание на это после того как один юзер сообщил что его перекидывает с его аккаунта на другой...


Покопал гугля - наткнулся на http://forums.devnetwork.net/viewtopic.php?p=298650&sid=6dffd6bb6f2a4ac49e0a132c8192e60f

Там дано такое решение:

PHP:
if((session_id() == 'deleted') || ($_COOKIE[session_name()] == 'deleted')) 
{ 
   header('Location: error.php'); 
   exit; 
}
Но хотелось бы услышать советы здешних гуру :)
 

zerkms

TDD infected
Команда форума
Сенсей
посмотри на вызов session_set_save_handler при установке обработчиков сессии
там пятый аргумент - имя фунции которая отвечает за удаление
есть подозрение что в ней вместо реального удаления сессия просто помечается как "deleted"

-~{}~ 03.10.06 13:03:

упс, думал сессии в бд хранятся, пардон
 

Фанат

oncle terrible
Команда форума
Сенсей
проблема у тебя не с сессиями, а с неким загадочным кодом загадочного портала.
и с проблемой этой надо обращаться к разработчикам портала, а не сюда.
Это они туда написали Deleted, а не мы. Понимаешь?
 

Сенсей

Новичок
Фанат
И почему я не сомневался что ты так ответишь...

Пойдем тогда по другому пути...

Портал писал я.
И я никуда 'deleted' не писал...

Запрос sql_query("update ".$prefix."_users set user_last_visit=NOW(),
user_ip='".$user_ip."',
user_session_id='".session_id()."'
where user_id='".USER_ID."'", $dbi);

- единственный запрос который изменяет данные в поле user_session_id

Вот тут покопался еще пол часика в гугле.. наткнулся еще на

http://www.thescripts.com/forum/thread517520.html

От туда выкопал:

The problem arises, I guess, because I'm deleting the session cookie
before calling session_destroy() -- because the php documentation said
to do that. I guess I don't really need to delete it.

Deleting the cookie gives it the value 'deleted' until the browser
is closed, which matches the sess_deleted file created when
session_destroy() is called. THAT was the whole problem.


Буду пробовать щас... надеюсь поможет...
 

zerkms

TDD infected
Команда форума
не верю что удаление куки на клиенте может привести к такому. имхо выделеная болдом в прошлом посте цитата абсурдна от точки и до точки
 
Сверху