2012-06-14 6 views
1

Мои сеансы CI хранятся в моей базе данных.CodeIgniter - как запросить сеанс БД?

У меня есть собственный PHP-скрипт вне CodeIgniter, который нуждается в некоторой информации, которая находится в userdata. Есть ли способ, чтобы я мог запросить таблицу сеансов CI и выяснить, что такое сеанс текущего пользователя? Я думаю, что CI проверяет IP-адрес пользователя и «первые 120 символов строки данных браузера». Эти 2 собранных данных доступны для этого внешнего скрипта, верно? Могу ли я запросить эти 2 поля и получить точный результат? Или CI как-то знает, что такое session_id?

В качестве альтернативы, я думал, что могу установить собственную переменную сеанса из CI, содержащую нужную мне информацию, и попытаться получить к ней доступ во внешнем скрипте PHP. Это не сработало.

Я открыт для предложений.

ответ

0

Я использовал этот код, чтобы интегрировать кометы чат (внешнее приложение) с моей пользовательской системы CI: вам может понадобиться изменить его, но вы можете получить gyst:

$decoded_ci_session = @unserialize(@stripslashes($_COOKIE['ci_session'])); 

$sql = "SELECT user_data FROM ".TABLE_PREFIX."sessions WHERE session_id = '".$decoded_ci_session['session_id']."'"; 

$query = mysql_query($sql); 
$row = mysql_fetch_array($query); 
$decoded_ci_session = @unserialize(@stripslashes($row[0])); 

на конец $ decoded_ci_session должен содержать все пользовательские данные обычно в $this->session->userdata()

+0

Интересно, что я делаю это частью интеграции CometChat. Вы помещаете весь сеанс CI в файл cookie? – StackOverflowNewbie

+0

Я только использовал настройки по умолчанию для библиотеки ci db_session. Я думаю, что это похоже на session_id и две другие части информации. Но с идентификатором сеанса вы можете запросить db и получить остальную информацию, используя ее в качестве ключа. Вы можете просто var_dump ($ _ COOKIE) в этом файле интеграции в cometchat, и он должен сказать вам, что происходит в ci_session. – Rooster

Смежные вопросы