Да, вам нужно будет использовать базу данных. Да, ограничение в 4 КБ - это ограничение браузера для размеров файлов cookie, установленное Netscape десять лет назад. Как правило, в любом случае рекомендуется сохранять файлы cookie небольшими, поскольку каждый заголовок запроса к объекту на сервере (для того же домена) будет отправлять этот файл cookie.
Кроме того, хороший совет для CodeIgniter относительно таблиц сеансов базы данных: установите тип MEMORY, чтобы сеансы сохранялись в оперативной памяти, а не на диске, что ускоряет работу вашего сайта (меньше обращений к диску при доступе к сайту). Вы потеряете данные сеанса при перезагрузке сервера, но в ожидании перезагрузки такая информация обычно не слишком полезна.
SQL для создания таблицы CodeIgniter MySQL:
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 NOT NULL,
PRIMARY KEY (session_id)
);
Параметры PHP CodeIgniter (в приложении / config / config.php):
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;