Обработка файлов cookie PHP - PullRequest
       0

Обработка файлов cookie PHP

0 голосов
/ 29 декабря 2011

Веб-клиент centain, который мне нужно поддерживать, отправляет заголовок Cookies моему приложению дважды в заголовках HTTP, что, в свою очередь, делает PHP неспособным прочитать правильное значение для cookie, игнорируя сеанс.

Вот соответствующая часть запроса, который я вижу:

GET / HTTP/1.1
Cache-Control: max-age=0
Accept-Language: en-US
Cookie: PHPSESSID=49af82ddf12740e6a35b15985e93d91a
Connection: Keep-Alive
Cookie: PHPSESSID=49af82ddf12740e6a35b15985e93d91a
[...] Other irrelevant headers

У меня есть два вопроса:

Это ошибка PHP? или поведение не определено, когда клиент отправляет один и тот же заголовок дважды?

Существует ли быстрый обходной путь, чтобы заставить вещи работать без необходимости вручную анализировать заголовки HTTP, чтобы я мог прочитать правильное значение cookie (и сеанса) в моем приложении? Или я должен вручную разобрать заголовок HTTP, чтобы установить для сеанса правильное значение?

1 Ответ

1 голос
/ 29 декабря 2011

Согласно спецификации HTTP, двойной заголовок просто объединяет значения вместе с запятой, что делает его:

Cookie: PHPSESSID=49af82ddf12740e6a35b15985e93d91a, PHPSESSID=49af82ddf12740e6a35b15985e93d91a

PHP должен иметь возможность анализировать куки, но поведение сессий не определено, когда есть два идентификатора сессии.

Я настоятельно рекомендую исправить клиента. Если это не вариант, вам придется анализировать заголовки вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...