2010-02-26 3 views
1

Я пытался реплицировать производственную настройку на моем сервере разработки, но не могу заставить сеансы работать правильно.Session cookie не отправляется, когда PHP session.auto_start установлен true

После многих разочаровывающих часов я отследил проблему до того, что директива php.ini session.auto_start не запускает сеанс.

AFAIK, session.auto_start = 1 и session_start() в верхней части скрипта должны быть функционально идентичными.

Если я вызываю пустой скрипт PHP, используя curl, чтобы показывать только заголовки, я получаю следующее с session.auto_start = 1 (проверено на странице информации php, что оно действительно установлено в true).

[email protected]:~$ curl -I test.server.local 
HTTP/1.1 200 OK 
Date: Sat, 20 Feb 2010 05:18:05 GMT 
Server: Apache 
P3P: CP="NOI DSP COR NID PSA ADM OUR IND NAV COM" 
Content-Type: text/html 

No Session cookie.

Единственное изменение, которое я делаю, это отключить session.auto_start, добавить session_start(); в скрипт и перезапустить apache.

[email protected]:~$ curl -I test.server.local 
HTTP/1.1 200 OK 
Date: Sat, 20 Feb 2010 05:18:11 GMT 
Server: Apache 
Set-Cookie: PHPSESSID=c7bdfb8eca47c12d97ff3ad86081d470; path=/ 
Expires: Thu, 19 Nov 1981 08:52:00 GMT 
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
Pragma: no-cache 
P3P: CP="NOI DSP COR NID PSA ADM OUR IND NAV COM" 
Content-Type: text/html 

Теперь это работает.

Может кто-нибудь помочь мне понять, почему session.auto_start не отправляет сеансовый файл cookie.

+0

Где вы изменили конфигурацию? – zneak

+0

В файле php.ini – gacrux

ответ

0

Это было вызвано ошибкой в ​​XDebug (ироничный ха?). Я просто отключил xdebug, но я уверен, что обновление, вероятно, исправит его.

Смежные вопросы