Jump to content

Recommended Posts

Вопрос у меня странный, ситуация нонсенс. Вопрос: как получается, что переменная $_SESSION в папке /admin/ имеет одни значения, а в корне сайта и в любой другой папке сайта - другие.
Вот такой вопрос. На сколько я знаю, такого чтобы $_SESSION была в одном домене и имела разные значения в разных папках - такого быть не должно. Но по факту это происходит. Почему?

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

 

Share this post


Link to post
Share on other sites

узнать user_id админа так

$this->load->library('user');
$this->user = new User($this->registry);

$admin_superman = $this->user->isLogged();

Share this post


Link to post
Share on other sites

узнать user_id админа так

Знаю что так. Не знал бы, не пришёл бы на этот форум, так-как по пустякам на форумы не хожу, всё узнаю сам. Обращаюсь же с вопросом только если ситуация нонсенс. Прошу это выделить что-ли. Сразу обратите внимание на вопрос по сессиям, может есть какие-то спецы по 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 )

Как это возможно?

Share this post


Link to post
Share on other sites

Вы писали "Мне вообще это надо для того чтобы узнать user id админа"
так в чем проблема?? Я Вам даю ответ, а Вы мне "Я знаю" и начинаете про сессии?? Может поставите вопрос/задачу по точнее, ну и в разрезе структуры MVC на примере движка??
 
А по сессиям, ничего странного нет. Сессия может менятся хоть после каждого перехода со странице на страницу в зависимости от условий. Это не какая то там константа которая будет переходит сама по себе.
 
Да и пишите вы session_start(); Думаете этого достаточно чтобы определить user_id ??

В общем пока одни вопросы и сумбур.

Share this post


Link to post
Share on other sites

Я Вам даю ответ

Не работает этот ответ, хотя должен работать. Путём реинжениренга я пришёл к вопросам о сессиях. Сказав что мне это всё нужно чтобы узнать user_id, я имел ввиду что может быть есть какой-то другой способ узнать user_id, который бы не задействовал сессию. Наверное другого способа нет.

Зачем было давать мне этот код, если я привёл в первом сообщении ссылку на такой же код и сказал что у меня он не работает? Короче хватит уводить разговор в сторону от сути. Не в опенкарте дело, вопрос к знатокам php, которые может знают как сессия может себя так вести... Но похоже придётся писать на англоязычный форум по php с вопросом о сессии, так-как здесь меня явно не понимают.

Share this post


Link to post
Share on other sites

Сесии хранятся в папке указанной параметром session.save_path в php.ini
Теоретически, можно задать его в файле .htaccess  Тогда для разных папок могут быть разные .htaccess и соответственно разные сессии 

 

Share this post


Link to post
Share on other sites

мда.... вы хоть попробуйте вставить это код?

У меня например все работает.  Вставил в контролер например header.php на фронтэнде. Логинюс как админ в админке, перехожу на фрон и вижу ид админа. Что я делаю не так??

 

Ну а если вам проще на англо форуме, то пожалуйста, никто вас не держит.

Share this post


Link to post
Share on other sites

Решение: я не привык пользоваться 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.

 

ravilr - извини если нагрубил, я вижу твоё желание помочь

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By innover
      Имеем локальный хостинг OpenServer под Win10
      php 5.6 + Apache
      Свежеустановленный OcStore 2.3.0.2.3
      Не отображаются установленные дополнения ocmod. При этом в логе дополнений есть информация о модификациях. Как сделать чтобы они отображались?
       



       
      Кэш чистил, на кнопку "обновить" нажимал - не помогает.
    • By costas
      Admin API Сlass
      Скачать/Купить дополнение Данный класс позволяет делать запросы к API на стороне бэкенда администратора (controller, model).
      Писался под OpenCart 3.0.3.2, на более ранних версиях не тестировался, но в силу простоты и отсутствия зависимостей должен работать и на более ранних версиях.
       
      Тип лицензии
      GNU General Public License version 3
      https://opensource.org/licenses/GPL-3.0
       
      Требования
      Установленное расширение PHP's cURL
      https://www.php.net/manual/en/book.curl.php
       
      Установка
      Скопировать содержимое директории upload/ в корневую директорию OpenCart, архив содержит всего один файл system/library/api.php 
      Никаких зависимостей не требуется, изменения в файлах OpenCart не производится.
       
      Пример использования на примере Api Currency (change session currency)
       
      Создание объекта класса с параметрами "API имя" и "API ключ" и проверка успешной авторизации:
      // Без записи лог файла $api = new API('json', '23c496d0f2043a08a75b16f732c3b51a'); // С записью в лог файл // $api = new API('json', '23c496d0f2043a08a75b16f732c3b51a', 1); if($api->get_state()) { // Успешно ... } else { // Что то пошло не так... ... } Параметры для запроса методом POST:
      $params = array( 'currency' => 'USD' ); Выполнение запроса с проверкой результата:
      $result = $api->query('api/currency', $params); if(isset($result['error'])) { // Что то пошло не так... ... } else { // Успешно ... } Метод $api->query(route, params)  - возвращает ассоциативный массив данных из декодированной JSON строки.
       
      Метод $api->get_state() - возвращает true в случае если авторизация прошла успешно и сессия установлена, false в случае не успешной авторизации.
      Добавил costas Добавлено 01.09.2019 Категория Инструменты, утилиты Системные требования Сайт разработчика http://www.opencartlabs.ru Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 3.0 ocStore 3.0 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет  
    • By costas
      Данный класс позволяет делать запросы к API на стороне бэкенда администратора (controller, model).
      Писался под OpenCart 3.0.3.2, на более ранних версиях не тестировался, но в силу простоты и отсутствия зависимостей должен работать и на более ранних версиях.
       
      Тип лицензии
      GNU General Public License version 3
      https://opensource.org/licenses/GPL-3.0
       
      Требования
      Установленное расширение PHP's cURL
      https://www.php.net/manual/en/book.curl.php
       
      Установка
      Скопировать содержимое директории upload/ в корневую директорию OpenCart, архив содержит всего один файл system/library/api.php 
      Никаких зависимостей не требуется, изменения в файлах OpenCart не производится.
       
      Пример использования на примере Api Currency (change session currency)
       
      Создание объекта класса с параметрами "API имя" и "API ключ" и проверка успешной авторизации:
      // Без записи лог файла $api = new API('json', '23c496d0f2043a08a75b16f732c3b51a'); // С записью в лог файл // $api = new API('json', '23c496d0f2043a08a75b16f732c3b51a', 1); if($api->get_state()) { // Успешно ... } else { // Что то пошло не так... ... } Параметры для запроса методом POST:
      $params = array( 'currency' => 'USD' ); Выполнение запроса с проверкой результата:
      $result = $api->query('api/currency', $params); if(isset($result['error'])) { // Что то пошло не так... ... } else { // Успешно ... } Метод $api->query(route, params)  - возвращает ассоциативный массив данных из декодированной JSON строки.
       
      Метод $api->get_state() - возвращает true в случае если авторизация прошла успешно и сессия установлена, false в случае не успешной авторизации.
    • By Gixoc
      Направляет уведомления об удачных и неудачных попытках входа в админку интернет-магазина на Opencart’e. 
      Уведомления по E-mail, Telegram или Viber.
       
      Распространяется «как есть» (as is).
      Версия Opencart 1.5, 2.1, 2.2, 2.3, 3.0
      Техподдержка в свободное время
      Установка
      Opencart 2.x - 3.0 - через встроенный Ocmod
      Opencart 1.5 - просто распакуйте архив в корень сайта, необходим VQMod
       
      Обновление от 19.08.19
      1. Из-за постоянных ошибок убрано определение местоположения 
      2. Добавлена версия для Opencart 1.5
       
      Обновление от 22.11.18
      1. В связи с недоступностью сервиса http://ipgeobase.ru:7020/geo по определению адреса по ip, подключил сервис http://www.geoplugin.net/json.gp
       
      Установка и настройка
       
      ВНИМАНИЕ! 
      Для отправки сообщения по Telegram и Viber необходимо создать бота. 
      Как создать бота Telegram
       
      Как создать бота Viber
       
       
      Спасибо можно направлять сюда:
      Яндекс.Деньги - https://money.yandex.ru/to/410016328220054
      PayPal - https://paypal.me/gixoc 
      WebMoney - R038781524647
       
       
      Если вдруг что пошло не так (как удалить):
       
    • By Gixoc
      Скачать/Купить дополнение


      Уведомления о входе в админку Opencart (E-mail, Telegram, Viber) — Admin Security: Notifications
      Направляет уведомления об удачных и неудачных попытках входа в админку интернет-магазина на Opencart’e. 
      Уведомления по E-mail, Telegram или Viber.
       
      Распространяется «как есть» (as is).
      Версия Opencart 1.5, 2.1, 2.2, 2.3, 3.0
      Техподдержка в свободное время
      Установка
      Opencart 2.x - 3.0 - через встроенный Ocmod
      Opencart 1.5 - просто распакуйте архив в корень сайта, необходим VQMod
       
      Обновление от 19.08.19
      1. Из-за постоянных ошибок убрано определение местоположения 
      2. Добавлена версия для Opencart 1.5
       
      Обновление от 22.11.18
      1. В связи с недоступностью сервиса http://ipgeobase.ru:7020/geo по определению адреса по ip, подключил сервис http://www.geoplugin.net/json.gp
       
      Установка и настройка
       
      ВНИМАНИЕ! 
      Для отправки сообщения по Telegram и Viber необходимо создать бота. 
      Как создать бота Telegram
       
      Как создать бота Viber
       
       
      Спасибо можно направлять сюда:
      Яндекс.Деньги - https://money.yandex.ru/to/410016328220054
      PayPal - https://paypal.me/gixoc 
      WebMoney - R038781524647
       
       
      Если вдруг что пошло не так (как удалить):
       
      Добавил Gixoc Добавлено 13.05.2018 Категория Модули Системные требования CURL Сайт разработчика https://gixoc.ru Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х Обращение к серверу разработчика Нет  
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.