Вопрос у меня странный, ситуация нонсенс. Вопрос: как получается, что переменная $_SESSION в папке /admin/ имеет одни значения, а в корне сайта и в любой другой папке сайта - другие. Вот такой вопрос. На сколько я знаю, такого чтобы $_SESSION была в одном домене и имела разные значения в разных папках - такого быть не должно. Но по факту это происходит. Почему? Мне вообще это надо для того чтобы узнать user id админа. Даже есть тема http://www.opencart60s.com/opencart/-solved-display-admin-user-in-front-end-40377.html в которой даётся рецепт который подразумевает что с $_SESSION никаких чудес нет. Но у меня даже этот рецепт не работает, естественно, потому что в сессии фрондэнда нет этого user id. Вообщем вопрос к самым самым...
это такая подколка, да? я по моему достаточно изложил суть проблемы, прошу не уводить разговор в сторону - зачем, для чего и т.д. Если по суди нечего сказать, то тему пропускаем. --- Добавлено, 20 июн 2014 --- Может есть какие-то спецы по php, которые исходный код php изучали? Может ли сессия в папке /admin/ иметь отличные от других папок значения? Такая ерунда происходит даже в таком файле test.php: <? session_start();print session_id(); print_r($_SESSION);?> Я его положил в папку /catalogue/test.php, результат: tdtgg1nrvero5vtre99f1kr366Array ([language]=> ru [currency]=> EUR [cart]=>Array()) Далее положил его в папку /admin/test.php, результат: tdtgg1nrvero5vtre99f1kr366Array ([currency]=> EUR [user_id]=>1[token]=> a648bbdd20a3214b546bf488f4e13705 [test]=>1) Как это возможно?
Решение: Я не привык пользоваться PHP в режиме CGI/FastCGI, так-как везде в основном использую PHP в режиме Apache 2.0 Handler, а php.ini текущей дирректории доступен только в режиме CGI/FastCGI, для Apache режима есть .htaccess со своими php флагами. Дело в том, что php.ini текущей дирректории это совсем не тоже самое что .htaccess. В htaccess происходит исправление базовой конфигурации php.ini, которая грузиться несмотря ни на что. А в php.ini тек.дирректории происходит конфигурирование всего PHP, по этому если какого-то парраметра в нём нет, то устанавливается то, которое определено в PHP по умолчанию. Естественно парраметр session.save_path, который отвечает за переменные сессии, по умолчанию пустой, по этому переменные сессии в дирректории с php.ini отличались, так-как сессия этой дирректории сохранялась где-то в другом месте, отличном от того, который явно указан в главном php.ini данного сервера, а ведь все другие дирректории без файла php.ini использовали для сессий именно тот путь, который указан в главном php.ini.