CI框架3.0關於session的設置改動及存數據庫的使用方法


Session的設置跟之前有點不一樣

我們來看看2.0版本中的設置是什么樣子的:

$config [ 'sess_cookie_name' ]=  'test_session' ;
$config [ 'sess_expiration' ]= 7200;
$config [ 'sess_expire_on_close' ]= FALSE;
$config [ 'sess_encrypt_cookie' ]= FALSE;
$config [ 'sess_use_database' ]= TRUE;
$config [ 'sess_table_name' ]=  'test_sessions' ;
$config [ 'sess_match_ip' ]= FALSE;
$config [ 'sess_match_useragent' ]= TRUE;
$config [ 'sess_time_to_update' ]= 3000;
 
而3.0是這樣的:
$config [ 'sess_driver' ] =  'database' ;  
$config [ 'sess_cookie_name' ] =  'test_session' ;
$config [ 'sess_expiration' ] = 3600;
$config [ 'sess_save_path' ] =  'test_sessions' ;
$config [ 'sess_match_ip' ] = FALSE;
$config [ 'sess_time_to_update' ] = 300;
$config [ 'sess_regenerate_destroy' ] = FALSE;
 

首先是第一個改動,CI3.0支持更多的方式去存儲session,包括files, database, redis, memcached以及自定義。

所以你可以在sess_driver那里修改為自己所需的存儲方式。

然后是第四行的改動,第四行在使用文件存儲的時候應當指定文件路徑(使用默認的null即可),而使用數據庫存儲時需要改為數據表的名稱,使用redis的時候需要改為tcp地址,如

tcp://localhost:6379

使用memcached也是一樣要改為地址,如:

localhost:11211

數據庫如何使用呢?

首先在application\config\config.php中配置好,然后去數據庫創建表(MYSQL):

【備注:3.0版本的session數據表與2.0版本相差較大,建議刪除2.0的數據表換成新的數據表】

CREATE  TABLE  IF  NOT  EXISTS `ci_sessions` (
         `id`  varchar (40)  NOT  NULL ,
         `ip_address`  varchar (45)  NOT  NULL ,
         ` timestamp int (10) unsigned  DEFAULT  NOT  NULL ,
         `data` blob  NOT  NULL ,
         PRIMARY  KEY  (id),
         KEY  `ci_sessions_timestamp` (` timestamp `)
);
如果你想要打開sess_match_ip的話還需要執行下面的語句
ALTER  TABLE  ci_sessions  ADD  CONSTRAINT  ci_sessions_id_ip  UNIQUE  (id, ip_address);
這樣配置就完成了,你可以使用2.0版本的方法進行調用。
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM