Sponsored Link
[Codeigniter]SessionをDatabaseで管理する方法
公式のユーザーガイドに書いてるのですが、忘れそうなのでメモ
Databaseの設定はちゃんとされていることを前提です。
まずSession管理用のテーブルを作ります
CREATE TABLE IF NOT EXISTS `ci_sessions` (
`id` varchar(40) NOT NULL,
`ip_address` varchar(45) NOT NULL,
`timestamp` int(10) unsigned DEFAULT 0 NOT NULL,
`data` blob NOT NULL,
KEY `ci_sessions_timestamp` (`timestamp`)
);
テーブル名は任意のもので設定可能です。
Codeigniter の config.php をいじります。
$config['sess_driver'] = 'database'; // どうやってSessionを管理するか (今回Database管理のため、databaseを設定)
$config['sess_cookie_name'] = 'ci_sessions'; // クッキー名
$config['sess_expiration'] = 15552000; // Sessionを保持する期間(秒)、ここは適宜設定
$config['sess_save_path'] = 'ci_sessions'; // sess_driverによって変わります、databaseの場合はテーブル名を設定
$config['sess_match_ip'] = FALSE; // セッションクッキーを読み取る際に、ユーザーの IP アドレスを検証するかどうか。
$config['sess_time_to_update'] = 86400; // セッションIDを再生成する頻度。0だと再生成しない
$config['sess_regenerate_destroy'] = FALSE; // セッション ID の自動再生成をするときに古いセッション ID に関連付けられたセッションデータを 破棄するかどうか。
これでDatabaseに保存されます。