Имеется свежий php 5.5.7.
Столкнулся с проблемой, когда выставил параметр в настройках php.ini
use_strict_mode=1.
Когда лезу без старой сессии, то сервер отвечает двумя сессионными куками:
> GET / HTTP/1.1
> User-Agent: curl/7.32.0
> Host: gate
> Accept: */*
>
< HTTP/1.1 401 Unauthorized
< Server: nginx/1.4.1
< Date: Mon, 30 Dec 2013 09:36:52 GMT
< Content-Type: application/json
< Transfer-Encoding: chunked
< Connection: keep-alive
< Set-Cookie: token=augfa22hm7dh075esvb5n83mf0
< Set-Cookie: token=42jrgfrnrp40lmbo8hbd0ufg40
< 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
В процессе дебага было выявлено, что это особенность именно реализации в php, т.е. эти куки появляются сразу после единичного вызова
session_start().
Вторая кука - валидная, годится для использования сессии и при дальнейшей работе с сессией проблемы нет.
Можно конечно переписать валидацию на клиентской стороне или отказаться вообще от данного режима, но не хотелось бы с учётом того, что этот функционал вроде как избавляет от одной потенциальной уязвимости. Подробнее написано тут
https://wiki.php.net/rfc/strict_sessions