繁体   English   中英

Codeigniter将会话存储在数据库中

[英]Codeigniter storing session in database

我在数据库中存储会话时遇到问题。 我的项目有两个部分,一个是完整的网站,用户可以在其中访问并安排其视频广播,第二部分是Facebook应用程序,观众可以在其中访问并观看广播。 问题是,当我通过将sess_use_database设置为true来将会话存储在数据库中时,我的网站部分运行正常并且没有问题,但是在facebook部分中,会话未存储手动值,除了codeigniters默认值,但是当我将cookie用于会话时,两个部分运行良好。 iframe中的Codeigniter会话是否有问题?

在尝试调试会话问题之前,我一直在项目中遇到问题两天以上,直到发现问题在于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;

我想您的问题是Web服务器为域名创建了唯一的ID会话,因此,如果我通过Facebook访问您的站点,则我的会话ID与通过其域访问您的站点不同,在这种情况下,应使用Cookie来存储会话ID仅,但所有会话数据应存储在数据库中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM