Intereting Posts
Невозможно получить выход MySql с PHP Получите сохраненные данные Zend_Auth из-за проекта zend (во внешнем non-zend-проекте) Как определить, действительно ли файл загружен и сохранен, несмотря на предварительную выборку / кеш браузера? количество кликов эха на счетчике кликов "Preg_match (): Ошибка компиляции: несогласованные скобки" в PHP для допустимого шаблона Поворот ссылок с использованием геоплегина Выполнить wkhtmltopdf из PHP Фоновый процесс PHP все еще влияет на загрузку страницы Доступ к датам в PHP за пределами 2038 Сделайте форму в php, которая сохраняет информацию, которую пользователь дает, и подключает ее к другой печатной странице Как загрузить большой файл (ы) на FTP-сервер, используя php? Как получить доступ к элементу массива внутри другого массива PHP – использование даты, чтобы узнать о летнее время PHP изменение языковой версии Регулярное выражение PHP для проверки URL-адреса

Как несериализировать данные сеанса codeigniter из базы данных

Я хотел использовать сессию CI во внешнем скрипте, и я получил следующие данные из базы данных.

__ci_last_regenerate|i:1446535049;ci_UserID|s:1:"2";ci_UserName|s:24:"example@xyz.com";logged_in|b:1; 

Я попробовал unserialize и unserialize(base64_decode($data)) но я еще не unserialize(base64_decode($data)) .

Пожалуйста, помогите извлечь эти данные.

Solutions Collecting From Web of "Как несериализировать данные сеанса codeigniter из базы данных"

Я получил решение здесь

Поэтому я использовал сеансовое декодирование

 session_decode('__ci_last_regenerate|i:1446535049;ci_UserID|s:1:"2";ci_UserName|s:24:"example@xyz.com";logged_in|b:1;'); 

Таким образом, декодер сеанса хранит все зашифрованные данные в обычном сеансе php.

Я могу получить доступ с помощью: echo $_SESSION['ci_UserID'];

Ну, ребята, спасибо за помощь

Если это переменная сеанса, вы можете использовать собственную сессионную библиотеку CodeIgniter. Рассмотрим следующий код (в контроллере):

 $this->load->library('session'); // load the session library $session_data = $this->session->all_userdata(); // get all session data print_r($session_data); // print and get the corrresponding variable name, eg "item" $var = $this->session->userdata('item'); // pick one that suits your needs, eg item 

Извините, я прочитал «внешний скрипт» только после размещения кода. Это, очевидно, работает только в рамках CI.

Для внешнего скрипта вам может потребоваться более пристальный взгляд. Переменные разделяются символом ";" и "|" и затем сериализуется, так что это может работать (не проверено):

 $row = explode(';', '__ci_last_regenerate|i:1446535049;ci_UserID|s:1:"2";ci_UserName|s:24:"example@xyz.com";logged_in|b:1;'); // load the database row $userid = explode('|', $row[1]); $userid = unserialize($userid[1]); // now $userid holds the value "2"