2012-02-29 99 views
2

我有一個上傳腳本,一旦上傳了一個5分鐘的會話,用戶可以編輯上傳的標題。這是一個與所有工作正常時,會議只不過是當地的cookie使用這些設置:Codeigniter會話只適用於不'sess_use_database'

$config['sess_cookie_name']  = 'if_session'; 
$config['sess_expiration']  = 300; 
$config['sess_expire_on_close'] = FALSE; 
$config['sess_encrypt_cookie'] = TRUE; 
$config['sess_use_database'] = FALSE; 
$config['sess_table_name']  = 'ci_sessions'; 
$config['sess_match_ip']  = FALSE; 
$config['sess_match_useragent'] = TRUE; 
$config['sess_time_to_update'] = 300; 

現在,當我試圖改變這種使用ci_sessions表我改變「sess_encrypt_cookie」假和真「sess_use_database」。

數據現在顯示在數據庫中,但我的會話檢測代碼沒有找到任何會話!

<?php if ($this->session->userdata('edit')) : ?> 
<?php $session_info = $this->session->userdata('edit'); ?> 
<?php $ids_array = explode(",", $session_info['image_id']); ?> 
<?php foreach ($ids_array as $id): ?> 
<?php 
if ($id == $alpha_id 
&& 
$this->session->userdata('ip_address') == $_SERVER['REMOTE_ADDR'] 
&& 
$session_info['session_id'] == $this->session->userdata('session_id')) : 
?> 

任何人都可以看到它爲什麼會使用cookie而不是現在?由於

更多信息: DB配置http://pastebin.com/qDbBQu8h

會議校驗碼http://pastebin.com/cSmZqcAE

會議確定的代碼http://pastebin.com/wZf3mGW5

+0

您可以顯示您用來創建會話表的「CREATE TABLE」語句嗎? – 2012-02-29 21:11:01

+0

@FrancisAvila我沒有它,但這裏的結構,如果有幫助http://i39.tinypic.com/29uol1h.png – eeek 2012-02-29 21:12:41

+0

導出您的表與phpMyAdmin併發布上述結構。如果您需要幫助,您需要發佈更多信息。 – Seabass 2012-02-29 22:05:25

回答

0

你加載codeigiter會議庫?看起來像你沒有加載Session庫還,確保負載庫首先從autoload.php或者從你的控制器,

$this->load->library('session'); 
1

的問題似乎是在這一行:

'session_id' => $this->session->set_userdata('session_id') 

您正在使用set_userdata而不是userdata。

+0

的工作,但現在我的CHECK代碼不拾起會話,繼承人會話中的user_Data http://pastebin.com/JJngLvFc – eeek 2012-03-01 07:53:53

+0

非常難以告訴你提供的代碼,你可以請發佈完整的代碼。 – 2012-03-01 08:00:41

+0

只是建議你不需要把這行$ this-> session-> userdata('ip_address')== $ _SERVER ['REMOTE_ADDR'],而不是你可以設置$ config ['sess_match_ip']爲true它確實對你來說同樣的事情。 – 2012-03-01 08:02:09