Как увеличить размер рамки сеанса CodeIgniter?
Стандартный размер – 04 kb
Это не имеет никакого отношения к сеансу codeigniter, 4kb данных – это максимальный размер, который может хранить файл cookie.
Для хранения большего количества данных используйте базу данных (см. «Сохранение данных сеанса в базе данных» в http://codeigniter.com/user_guide/libraries/sessions.html ).
Не храните большие объемы данных в сеансе; он будет загружен в память сценария по каждому запросу.
Вместо этого используйте файлы или базы данных, подключая данные к сеансу, используя идентификатор сеанса.
Да, вам нужно будет использовать базу данных. Да, ограничение 4kb – ограничение браузера для размеров файлов 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) );
Параметры CodeIgniter PHP (в приложении / 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;
@all это даже не хорошая практика, чтобы снова и снова использовать db снова для общих данных, хотя Session может служить для этого. Я рекомендую использовать PHP-родную сессию для этой цели, см. Здесь, как вы можете использовать PHP-собственные сеансы в CI. Замена сеанса CI с помощью PHP.