У меня самая странная проблема с самим PHP, которую я когда-либо видел.
Установка:
PHP 5.33 (также пробовал PHP 5.2.14) под IIS
Проблема:
PHP удаляет все данные сеанса, как только я помещаю восклицательный знак в ключ в массиве сеансов.
Пример:
session1.php
session_start();
$_SESSION["foo"] = 'test';
header('Location: session2.php');
session2.php
session_start();
var_dump($_SESSION);
die();
Работает нормально, я вижу распечатанные переменные данные.
array(1) { ["foo"]=> &string(4) "test" }
Но если я изменю строку в первом файле на
$_SESSION["foo!"] = 'test';
или
$_SESSION["f!oo"] = 'test';
Я имею в виду, если я добавлю восклицательный знак - тогда массив $ _SESSION будет пустым, когда я получу второй файл
array(0) { }
Я думал, что это неверная версия PHP, когда я был на 5.2.14, но обновление не помогло.
Я даже не знаю, в чем проблема. Может быть, это как-то связано с установкой Windows или IIS?
Есть идеи?