У меня есть папка вне /application
папки CodeIgniter, называемая myfolder
.
Мое приложение CI использует собственные PHP-сессии, и все работает отлично. Версия CI является последней версией 3.0.
Мне нужно получить доступ к некоторым данным сеанса в моей папке / myfile.php. Если я выполняю session_start()
а затем print_r($_SESSION);
то я не вижу сессию, установленную драйвером сеанса CI. Я понимаю, почему он этого не показывает.
Вы знаете какой-либо метод / взломать, с помощью которого я могу ссылаться на данные сеанса из сеанса CI в моей папке. например, напрямую, включая, например, Codeigniter / libraries / session / drivers / session_native.php или любой другой файл? Я просто массив из данных сеанса.
Текущий Session_native.php , похоже, не изменяет предпочтения встроенной библиотеки сеансов или не мешает тому, как сохраняются данные сеанса, я думаю, что следующее должно работать:
session_id($sessid)
с этим идентификатором сеанса до session_start()
session_start()
Это должно работать до тех пор, пока различные настройки ini, которые управляют сеансом lib, как session.save_path
одинаковы и, возможно, (если ваш хост имеет это расширение), настройки suhoshin, такие как suhosin.session.cryptdocroot
, не мешают.
Это трюк, но он работает. Поместите этот маленький непослушный код непосредственно перед переадресацией на вход. И теперь вы можете использовать ci_session
с родной сессией php, получайте удовольствие!
<?php session_start(); echo $_SESSION['ci_session'] = $this->session->userdata['ci_session']; ?>
Вы можете попасть в cookeis
<?php print_r($_COOKIE['ci_session']);
Сохраните данные сеанса, которые вы хотите передать из папки в файлы cookie, что может вам помочь.
Поэтому используйте файлы cookie для передачи данных извне папки и убедитесь, что, когда вы устанавливаете файлы cookie, он должен находиться в надлежащем доступном пути