如何避免Codeigniter在页面刷新时执行自动保存?

时间:2012-04-18 13:42:26

标签: php codeigniter session cookies

我正在为学校建立一个类似博客的小型系统。我需要在cookie中存储一些数据以及在db和cookie中保存会话。如果你在config / config.php上设置它以及在config / autoload.php中加载会话库,Codeigniter(CI)会自动保存数据库和cookie中的会话

目标:我需要在登录后在Cookie中设置会话,电子邮件和用户名,然后再将其恢复。 Kill cookie和cookie上的所有数据库数据到期或注销。

问题:当我重新加载页面时,CI每次都会在db中创建新的会话记录。它看起来很重要,即使刷新它也会使新的INSERT进入DB。

问题:如何停止进行自动保存的CI并使其在登录后保存会话并在注销后终止会话?

1 个答案:

答案 0 :(得分: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.