簡體   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