Nefungující session v Nette 0.9.3 a Chrome 37
- bedrich
- Člen | 5
Zdravím,
po aktualizaci Chrome na verzi 37 přestalo fungovat cokoliv týkající se
session. Konkrétně při každém požadavku se generuje nové PHPSESSID.
Předtím všechno v pořádku, až teď s novým Chrome to přestalo
fungovat. Explorer a Firefox v pořádku, Chrome 36 také funguje.
V testovacím prográmku, kde jsem používal obyčejné session_start() a
$_SESSION[] to funguje, takže za to asi může něco v nette.
Nemáte nějaké nakopnutí ?
Nette 0.9.3, PHP 5.3.8, Apache 2.2.14, Linux
(stejně se to chová i na localhostu se stejnou verzí nette, ale Windows a
PHP 5.3.3 a Apache 2.2.22)
- bowser.net
- Člen | 1
Ahoj,
problém je v metodě (Nette\Web\)Session::generateVerificationKey a v tom, že nový Chrome posílá během requestu s přesměrováním různé hodnoty hlavičky Accept-Encoding a ten ověřovací řetězec, který ta funkce vytváří, se pak liší.
Řešením je zakomentovat řádek
<?php
$key[] = $httpRequest->getHeader('Accept-Encoding');
?>