Межсессионная проблема с CI и Opencart

0

Я столкнулся с проблемой при доступе к сеансу в той же самой папке того же домена. Я работаю над системой, которая использует как CI, так и opencart-системы.

Для входа я использую метод входа в открытый доступ и активирую сессию и получая доступ к ним в CI. Но внутри контроллеров CI я не могу читать сеансы.

Пожалуйста, предложите мне несколько методов, чтобы я мог читать сеансы, созданные с помощью opencart.

Я могу прочитать их, используя этот простой код print_r ($ _ SESSION);

Но в контроллере ничего не работает. Это показывает, что я показываю мне сеансы CI

Вещи, которые я пробовал

1) Нет проблемы с перекрестным доменом

2) В основном файле php я могу читать сеанс

3) В контроллере CI нет возможности читать открытую сессию

Для получения более подробной информации см. Скриншоты

http://awesomescreenshot.com/01b4f4oc2b

http://awesomescreenshot.com/0b94f4old5

  • 0
    пожалуйста, помогите мне
  • 0
    Codeigniter - это работа с кадрами на основе MVC, где открытая корзина - работа с кадрами на основе oop. Сессии в codeigniter разные. Вы столкнетесь с большим количеством неприятностей, если смешаете их. У меня была такая же проблема. Лучше всего держать их отдельно друг от друга. По моему собственному мнению. Постарайтесь не думать, как работает открытая корзина, и попробуйте использовать методы codeigniter, небезопасный вход в Open Carts использует sha1 и salt. У меня была та же идея, что я делаю то, что делает открытая корзина, но только с codeigniter.
Теги:
codeigniter
session
opencart
session-cookies

1 ответ

0

Я бы попробовал с крючками. В $ hook ['pre_controller'] []

if ($_SESSION['customer_id'] != FALSE && !empty($_SESSION['customer_id'] && (int)$_SESSION['customer_id'] > 0)) {
  $this->session->set_session('customer', $_SESSION);
  session_unset();
}

Чтобы вернуть собственные сеансы, в $ hook ['post_controller'] []

if ( $this->session->userdata('customer') && ! empty($this->session->userdata('customer'))) {
  if (!$_SESSION) {
    session_start();
  }
  session_unset();
  $_SESSION = $this->session->userdata('customer');
  $this->session->unset_userdata('customer');
}

И это для случая выхода из приложения CI и использования OC снова. Не используется, просто пишет громко. Отказ от ответственности: не уверен, что будет работать или как повлияет на производительность.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню