Данные сеанса исчезают при использовании sess_use_database в codeigniter - PullRequest
1 голос
/ 03 июня 2011

Я создаю аутентификацию для своего веб-сайта (в настоящее время я использую codeigniter в качестве моей платформы php).

Как получилось, когда я установил ИСТИНА в $config['sess_use_database'] = TRUE;

мои данные сеанса исчезают и не отображаются в части страницы. Я пытаюсь отобразить имя пользователя, который зашел на сайт.

Когда $config['sess_use_database'] = FALSE; имя пользователя отображается на странице.

кто-нибудь сталкивался с этой проблемой? как я могу решить это?

Ответы [ 2 ]

2 голосов
/ 04 марта 2012

В CodeIgniter 2 таблица ci_sessions должна немного отличаться.

В частности, размер user_agent изменился с varchar 50 на varchar 120. Убедитесь, что вы используете этот базовый прототип, если вы используете CodeIgniter 2 с sess_use_database, установленным в TRUE:

CREATE TABLE IF NOT EXISTS  `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(16) DEFAULT '0' NOT NULL,
user_agent varchar(120) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text NOT NULL,
PRIMARY KEY (session_id),
KEY `last_activity_idx` (`last_activity`)
);

через http://codeigniter.com/user_guide/libraries/sessions.html

0 голосов
/ 03 июня 2011

Вам необходимо создать таблицу базы данных для хранения данных сеанса:

CREATE TABLE IF NOT EXISTS  `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(16) DEFAULT '0' NOT NULL,
user_agent varchar(50) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text DEFAULT '' NOT NULL,
PRIMARY KEY (session_id)
);

И затем установить $config['sess_table_name'] = 'ci_sessions';

http://codeigniter.com/user_guide/libraries/sessions.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...