弄了半下午終於把thinkphp的session設置搞清楚了.現在的項目是二開的baocms在設置session的時候發現服務器不生成session文件,讓人很是費解,然后就是開始bd,
bd說要生成session文件得設置session_save_path(),session_save_path()必須設置在session_start()之前(坑啊,讓這給坑苦了..)
thinkphp有一個配置SESSION_TYPE ,session驅動(sessionDB)是把session的值存放到數據庫里面的,里面用到了個函數session_set_save_handler(),設置了這個驅動就不會生成session文件了.
thinkphp session函數是一個多元化操作函數,傳入不同的參數調用可以完成不同的功能操作,包括下面一些功能
session在app.class.php static public function run(){}方法中 初始化 把 session_save_path()等屬性設置,
Session初始化設置方法 無需手動調用,在App類的初始化工作結束后會自動調用,通常項目只需要配置SESSION_OPTIONS參數即可,SESSION_OPTIONS參數的設置是一個數組,支持的索引名和前面的session初始化參數相同。
默認情況下,初始化之后系統會自動啟動session,如果不希望系統自動啟動session的話,可以設置SESSION_AUTO_START為false,例如:
'SESSION_AUTO_START' =>false
SESSION_OPTIONS
參數名 說明
id session_id值
name session_name 值
expire session.gc_maxlifetime 設置值
domain session.cookie_domain 設置值
use_cookies session.use_cookies 設置值
use_trans_sid session.use_trans_sid 設置值
cache_limiter session_cache_limiter設置值
cache_expire session_cache_expire設置值
type session hander類型,可以使用hander驅動擴展
session賦值
session('name','value'); //設置session 相當於 $_SESSION['name'] = 'value';
Session取值
$value = session('name');
session 刪除
session('name',null); // 刪除name 相當於:unset($_SESSION['name']);
要刪除所有的session,可以使用:session(null); // 清空當前的session 相當於$_SESSION = array();
參考的 文檔http://www.thinkphp.cn/document/137.html
