Codeigniter在数据库中存储会话

时间:2012-03-16 07:10:51

标签: php facebook codeigniter session facebook-iframe

我在数据库中存储会话时遇到问题。我的项目有两个部分,一个是完整的网站,用户来自并安排他们的视频广播,第二部分是Facebook应用程序,观众来看广播。问题是,当我通过将sess_use_database设置为true来存储数据库中的会话时,我的网站部分运行良好并且没有问题发生但在facebook部分会话中不存储除codeigniters默认值之外的手动值,但是当我使用cookie进行会话时两个部分运行良好。 iframe中的codeigniter会话有问题吗?

2 个答案:

答案 0 :(得分:0)

我猜您的问题是网络服务器为域名创建了唯一的ID会话,所以如果我通过facebook访问您的网站,我的会话ID将不同于通过其域访问您的网站,在这种情况下应使用cookie来存储仅会话ID,但所有会话数据都应存储在数据库中。

答案 1 :(得分:0)

我在我的项目上遇到问题超过两天试图通过会话调试我的问题UNTILL我发现问题出在ci_session表结构上

如果您遇到问题,您的桌子应该是这样的:

--
-- Table structure for table `ci_sessions`
--

CREATE TABLE IF NOT EXISTS `ci_sessions` (
  `session_id` varchar(40) NOT NULL,
  `ip_address` varchar(45) NOT NULL,
  `user_agent` varchar(120) NOT NULL,
  `last_activity` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `user_data` text NOT NULL,
  PRIMARY KEY (`session_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;