Сервер возвращает другой идентификатор сессии

prural

Новичок
Сервер возвращает другой идентификатор сессии

Делаю авторизацию на сайте, с помощью сессий. Проблема следующая: после авторизации создается сессия, но после перехода по какой-либо ссылке (после авторизации) id сессии меняется. При дальнейших переходах сохраняется второй id. Повторная авторизация решает проблему. Соответственно хотелось бы узнать почему такое происходит и как с этим бороться. Фак по сессиям читал.
 

Фанат

oncle terrible
Команда форума
кстати, может, он не тот фак читал.
prural, ты какой фак читал?
 

prural

Новичок
Автор оригинала: Фанат
кстати, может, он не тот фак читал.
prural, ты какой фак читал?
По сессиям, вот этот: PHP FAQ. Сессии. Подробное описание работы и объяснение механизма.

-~{}~ 25.01.06 22:07:

Почитал все маны по этому поводу, но не могу понять, почему происходит такая ошибка?
 

prural

Новичок
Вот результат getallheaders() в первый раз когда запускается скрипт:
Mozilla/4.0 (compatible; MSIE 6.0; X11; FreeBSD i386) Opera 7.54 [en]
localhost
text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
en
iso-8859-1, utf-8, utf-16, *;q=0.1
deflate, gzip, x-gzip, identity, *;q=0
Keep-Alive

т.е. сессия не посылается, если обновить страницу, то
Mozilla/4.0 (compatible; MSIE 6.0; X11; FreeBSD i386) Opera 7.54 [en]
localhost
text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
en
iso-8859-1, utf-8, utf-16, *;q=0.1
deflate, gzip, x-gzip, identity, *;q=0
Wed, 25 Jan 2006 19:16:00 GMT
PHPSESSID=6da06a23e65a7f0e2cd57d7ebfec5953
$Version=1
Keep-Alive, TE
deflate, gzip, chunked, identity, trailers

т.е сессия посылается только если обновить окно браузера. Но потом, если щелкнуть на какую нить ссылку, генерируется новый id сессии и остается постоянным.
 

prural

Новичок
Автор оригинала: Фанат
а что ты там прочёл?
Прочел, что при редиректе id сессии надо подставлять вручную. Так и сделал, но мне это не помогло.

-~{}~ 25.01.06 22:22:

Автор оригинала: Фанат
это ты смотришь ответ браузера.
и по нему ты никак не можешь судить - посылается что-то, или нет.
Согласен, но почемуто же id сессии меняется. Хотелось бы узнать почему. Уверен, что Вы это точно знаете, но почемуто не хотите сказать.
 

Фанат

oncle terrible
Команда форума
о, ещё интереснее.
то есть, идентификатор явным образом попадает в скрипт, но сессия стартует другая.
я тебя правильно понял?
 

prural

Новичок
Автор оригинала: Фанат
о, ещё интереснее.
то есть, идентификатор явным образом попадает в скрипт, но сессия стартует другая.
я тебя правильно понял?
Происходит переход например по такой ссылке:
index.php?PHPSESSID=934526a96bee0879b3a90b8fa6ab3797

далее, если прописать ссылкам руками "&".session_name()."=".session_id()
то при переходе на эту ссылку - все ок, если не прописывать, то генерируется новая сессия, с новым id.

Я не хочу прописывать ссылки (некрасиво это), а через куки не получается.
 

Фанат

oncle terrible
Команда форума
не понял.
можно всё то же самое, но ещё раз, и более связно?
Происходит переход например по такой ссылке:
index.php?PHPSESSID=934526a96bee0879b3a90b8fa6ab3797
отчего происходит? само по себе?
а результат какой?

далее, если прописать ссылкам руками
при чём здесь ссылки?
 

prural

Новичок
Автор оригинала: Фанат
не понял.
можно всё то же самое, но ещё раз, и более связно?

отчего происходит? само по себе?
а результат какой?


при чём здесь ссылки?
Объясняю:

чел заходит например на www.bla-bla-bla.ru/admin/
соответственно попадает на форму регистрации, если он вводит правильно логин и пароль, то он редиректится скриптом на index.php?PHPSESID=id (с помощью header)

Далее юзер попадает в админку, но при нажатии на какую-нить ссылку (например новости) генерируется новая сессия. Соответственно юзер уже считается не залогиненным. Причем в дальнейшем сохраняется id именно этой сессии.

Если юзер выходит из админки и логинется заново, то все ок.

Если вручную к каждой ссылке приписать id сессии, то все ок, т.е. вторая сессия не генерируется, но хочется чтобы id сессии хранился в куках и не менялся.
 

Фанат

oncle terrible
Команда форума
хорошо.
вопрос.
что ты сделал из того, что прочитал в факе?
 

prural

Новичок
Автор оригинала: Фанат
хорошо.
вопрос.
что ты сделал из того, что прочитал в факе?
Проверил на ошибки, ошибок нет.
далее прописал у редиректов id сессии - не помогло.
попробовал прописать id руками у ссылок - получилось

попробовал функцию getallheaders(); посмотрел что шлет браузер серверу.
Как посмотреть что шлет сервер браузеру (браузер - опера)?
 
Сверху