2013-03-20 53 views
0

我是新的php與codeigniter。我有一個關於codeigniter mvc框架的php會話的問題。 當我用表(CI-會議)來存儲會話數據時,我不能在我們的網站登錄由於會話過期..如何在沒有過期會話的情況下保存表中的會話數據?

  1. 我在會話級設置var $sess_table_name = 'ci_sessions'; & var $sess_use_database = TRUE;
  2. 我也在config.php中設置了$config['sess_use_database'] = TRUE; & $config['sess_table_name']= 'ci_sessions';
  3. 我已創建的表在數據庫喜歡 -

    CREATE TABLE IF NOT EXISTS ci_sessions( SESSION_ID VARCHAR(40)DEFAULT '0' NOT NULL, IP_ADDRESS VARCHAR(45)DEFAULT '0' NOT NULL, USER_AGENT VARCHAR(120)NOT NULL, last_activity INT(10)無符號DEFAULT 0 NOT NULL, 的user_data文本NOT NULL, PRIMARY KEY(SESSION_ID) KEY last_activity_idxlast_activity) );

給出很好的解決方法。

請幫幫我。

+0

如果您未使用會話表,您的登錄是否工作?你還設置了你的加密密鑰嗎? – 2013-03-20 11:44:06

+1

不要在覈心繫統文件中更改Session.php。餿主意。使用config.php來設置相關的選項。 – 2013-03-20 11:45:07

+1

你還沒有提到,如果這是你的開發環境或直播,但嘗試清除你的cookies或更改cookie的名稱。我發現,當我上線時,我遇到了問題,因爲我的開發人員和現場環境的cookie具有相同的名稱,從而導致會話混亂。 – 2013-03-20 12:02:45

回答

0

關於會話到期,轉到application-> config-> config.php並將$ config ['sess_expiration']設置爲零($ config ['sess_expiration'] = 0;)。這將取消會話到期。

關於在表中保存會話,請確保您的表看起來是這樣的:

CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL, 
ip_address varchar(45) DEFAULT '0' NOT NULL, 
user_agent varchar(120) NOT NULL, 
last_activity int(10) unsigned DEFAULT 0 NOT NULL, 
user_data text NOT NULL, 
PRIMARY KEY (session_id), 
KEY `last_activity_idx` (`last_activity`) 
); 

當然,你可以字段添加到它,但保持這種結構的初衷。

+0

我已經做了如上,但我沒有解決方案.......請幫助我 – 2013-03-20 16:50:51

相關問題