文章出處

一.Session
系統提供了 Session 管理和操作的完善支持,只需要通過 session()函數完成,該函
數可以完成 Session 的設置、獲取、刪除和管理操作。(session是保存在服務器端)
一般來說,在 ThinkPHP 中不需要手動初始化 session,系統會自動初始化。

參數名 說明
id session_id 值
name  session_name 值
path session_save_path 值
prefix  session 本地化空間前綴
expire  session.gc_maxlifetime 設置值
domain session.cookie_domain 設置值
use_cookies  session.use_cookies 設置值
use_trans_sid  session.use_trans_sid 設置值
type session 處理類型,支持驅動擴展

 

1 //手工初始化
2 session( array('name'=>'session_id', 'expire'=>3600));
1 //配置SESSION初始化
2 SESSION_OPTIONS=> array(
3 'name'=>'session_id',
4 'expire'=>3600,
5 ),

默認情況下,初始化之后系統會自動啟動 session,所以上面初始化的代碼了解即可,如果不希望系統自動啟動 session
的話,可以如下設置:

在 config.php 進行配置:

1 //設置系統不啟用session
2 'SESSION_AUTO_START' => false,

在 WeiBo/Home/Controller/UserController.class.php 中對 session 進行使用:

//注釋的是不用時ThinkPHP框架時使用session的格式

1 //session賦值
2 session('user', 'Mr.Lee'); //$_SESSION['user'] = 'Mr.Lee';
1 //獲取session值
2  echo session('user'); //echo $_SESSION['user'];
1 //session刪除
2 session('user', null); //unset($_SESSION['user']);
1 //刪除所有session
2 session(null); //$_SESSION=array();
1 //判斷session是否存在,存在則為1,不存在則為空,而不是0
2  echo session('?user'); //isset($_SESSION['user']);
1 //暫停session,寫入關閉
2 session('[pause]'); //session_write_close();
1 //啟動session,可開啟寫入
2 session('[start]'); //session_start()
1 //銷毀session
2 session('[destroy]'); //session_destroy();
1 //重新生成session id,這時服務器端不會覆蓋掉原來的session id 而是重新生成一個,這時再啟用null和destroy都只是刪除現在最新的session id,而不是之前的
2 session('[regenerate]'); //session_regenerate_id();

 

PS:如果在初始化 session 設置的時候傳入 prefix 參數或者單獨設置了
SESSION_PREFIX 參數的話,就可以啟用本地化 session 管理支持。

1 //SESSION前綴
2 'SESSION_PREFIX'=>'think_',

這時處理的$_SESSION['user']將變成$_SESSION['think_']['user'],而我們在
處理上沒有任何區別。

 

二.Cookie

ThinkPHP 內置了一個 cookie 函數用于支持和簡化 Cookie 的相關操作,該函數可以完成
Cookie 的設置、獲取、刪除操作。(cookie是保存在客戶端)

注釋后面是不用ThinkPHP時的cookie的格式

1 //cookie賦值
2 cookie('user', 'Mr.Lee'); //setcookie('user', 'Mr.Lee');
1 //cookie取值
2  echo cookie('user'); //echo $_COOKIE['user'];
1 //cookie賦值,設置過期時間,以秒計時
2 cookie('user', 'Mr.Lee', 3600);
1 //cookie賦值,第三參數數組設置過期時間和前綴
2 cookie('user', 'Lee',  array('expire'=>3600,'prefix'=>'think_'));
3 cookie('user', 'Mr.Lee', 'expire=3600&prefix=think_');
1 //cookie取值,帶前綴
2 echo cookie('think_user');

PS:除了過期和前綴,還有 path(保存路徑)和 domain(域)。當然也支持配置文件的
寫法:COOKIE_PREFIX、COOKIE_EXPIRE、COOKIE_PATH、COOKIE_DOMAIN。

1 //cookie賦值,數組
2 cookie('user',array('Mr.', 'Lee'));
1 //cookie刪除user
2 cookie('user',null);
1 //cookie刪除在配置文件里指定前綴的所有
2 cookie(null);
1 //cookie刪除指定前綴的
2 cookie(null, 'think_');

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()