Kredov long

$_SESSION admin

Тема в разделе "OpenCart", создана пользователем rkm432, 20 июн 2014.

  1. rkm432

    rkm432

    Регистрация:
    19 сен 2013
    Сообщения:
    5
    Симпатии:
    0
    Вопрос у меня странный, ситуация нонсенс. Вопрос: как получается, что переменная $_SESSION в папке /admin/ имеет одни значения, а в корне сайта и в любой другой папке сайта - другие.
    Вот такой вопрос. На сколько я знаю, такого чтобы $_SESSION была в одном домене и имела разные значения в разных папках - такого быть не должно. Но по факту это происходит. Почему?
    Мне вообще это надо для того чтобы узнать user id админа. Даже есть тема http://www.opencart60s.com/opencart/-solved-display-admin-user-in-front-end-40377.html в которой даётся рецепт который подразумевает что с $_SESSION никаких чудес нет. Но у меня даже этот рецепт не работает, естественно, потому что в сессии фрондэнда нет этого user id. Вообщем вопрос к самым самым...
     
  2. texxnik

    texxnik

    Регистрация:
    5 июн 2014
    Сообщения:
    19
    Симпатии:
    3
    а зачем вам узнавать id админа? опишите вопрос полностью
     
  3. rkm432

    rkm432

    Регистрация:
    19 сен 2013
    Сообщения:
    5
    Симпатии:
    0
    это такая подколка, да? я по моему достаточно изложил суть проблемы, прошу не уводить разговор в сторону - зачем, для чего и т.д. Если по суди нечего сказать, то тему пропускаем.
    --- Добавлено, 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)

    Как это возможно?
     
    Последнее редактирование: 20 июн 2014
  4. rkm432

    rkm432

    Регистрация:
    19 сен 2013
    Сообщения:
    5
    Симпатии:
    0
    Решение: Я не привык пользоваться 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.