GRIG
Новичок
Сессии, куки и разные глюки.
Сидел тут на работе над одной проблемой полтора дня. Довел мозги до кипения пока разобрался.
Проблема такая. Предположим, что есть некий хост host1.mydomen.com и на нем есть страница page1.php. При заходе на эту страницу выставляется кука с именем mycookie, которая используется для организации сессии. И еще при этом зачем-то делается вызов функции session_set_cookie_param( $n, '/', '.mydomen.com' ). Зачем делается - непонятно. Но делается - и это, к сожалению, не обсуждаемо.
Предположим далее, что в том же домене есть еще один хост host2.mydomen.com и на нем страница page2.php. При заходе на эту страницу аналогичным образом выставляется кука с тем же самым именем mycookie и с другим значением, но при этом никаких session_set_cookie_param не вызывается.
В результате вся функциональность скриптов на host2, связанная с наличием сессий и кук, перестает работать. По крайней мере, перестала у меня (сервер RedHat Linux+Apache+PHP5, броузер Mozilla FireFox 3.0.18)
Как выяснилось, проблема в том, что броузер при заходе на host2 отдавал куку, установленную скриптом с host1, несмотря на то, что host2 установил собственную куку. Когда кука от host1 была удалена руками - все снова заработало.
ВОПРОСЫ:
1) Это нормальное поведение софта или баг в броузере?
2) Как с такими вещами бороться?
Сидел тут на работе над одной проблемой полтора дня. Довел мозги до кипения пока разобрался.
Проблема такая. Предположим, что есть некий хост host1.mydomen.com и на нем есть страница page1.php. При заходе на эту страницу выставляется кука с именем mycookie, которая используется для организации сессии. И еще при этом зачем-то делается вызов функции session_set_cookie_param( $n, '/', '.mydomen.com' ). Зачем делается - непонятно. Но делается - и это, к сожалению, не обсуждаемо.
Предположим далее, что в том же домене есть еще один хост host2.mydomen.com и на нем страница page2.php. При заходе на эту страницу аналогичным образом выставляется кука с тем же самым именем mycookie и с другим значением, но при этом никаких session_set_cookie_param не вызывается.
В результате вся функциональность скриптов на host2, связанная с наличием сессий и кук, перестает работать. По крайней мере, перестала у меня (сервер RedHat Linux+Apache+PHP5, броузер Mozilla FireFox 3.0.18)
Как выяснилось, проблема в том, что броузер при заходе на host2 отдавал куку, установленную скриптом с host1, несмотря на то, что host2 установил собственную куку. Когда кука от host1 была удалена руками - все снова заработало.
ВОПРОСЫ:
1) Это нормальное поведение софта или баг в броузере?
2) Как с такими вещами бороться?
