1

学校向けの小さなブログのようなシステムを構築しています。一部のデータを Cookie に保存し、セッションを db と Cookie に保存する必要があります。Codeigniter (CI) は、config/config.php で設定し、config/autoload.php でセッション ライブラリをロードする場合、セッションをデータベースと Cookie に保存します。

目標: ログイン後に Cookie にセッション、電子メール、およびユーザー名を設定し、後でそれを取得する必要があります。Cookie を強制終了し、Cookie のすべてのデータベース データが期限切れになるか、ログアウトします。

問題: CI は、ページをリロードするたびに新しいセッション レコードを db に作成しています。リフレッシュしてもDBに新しいINSERTを作成するページは重要ではありません。

質問: 自動保存を行う CI を停止し、ログイン後にのみセッションを保存し、ログアウト後にセッションを強制終了するにはどうすればよいですか?

4

1 に答える 1

3

この正確な構文でセッションCIテーブルを作成しましたか?多くの問題が伴うことに気づきました。

--
-- Table structure for CodeIgniter ci_sessions.
--
DROP TABLE IF EXISTS `ci_sessions`;

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,
  PRIMARY KEY (`session_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;

-- -------------------------------------------------------------
--  `user_data` text,       COMMENT - maximum length of 65535 characters.
--  `user_data` mediumtext, COMMENT - maximum length of 16777215 characters.
--  `user_data` longtext,   COMMENT - maximum length of 4294967295 characters. 
于 2012-04-18T14:03:58.910 に答える