thinkphp中的session的使用和理解!
阿新 • • 發佈:2019-01-08
session的作用:session可以長時間的儲存資料,不丟失。
session的常用於:
1.登入,儲存登入資訊
2.儲存購物車資訊
3.儲存驗證碼資訊
定義session常量
define('WXUSER', 'wxuser_session');
define('MEMBER', 'member_session');
define('MERCHANT', 'merchant_session');
define('AGENT', 'agent_session');
define('CART', 'cart_session');
給session賦值
session(MERCHANT , $user['id']);
根據session獲取使用者資訊
$user = M('user')->where(array('id' => session(MERCHANT)))->find();
$this->user = $user;
$this->user_id = $user['id'];
如果session存在,直接進入主介面,否則進入登入介面
//商戶登陸
public function login(){
if (session(MERCHANT)) {
$this->redirect( U('User/Index/index'));
} else {
$this->display();
}
}
登出,銷燬session
//登出
public function userLogout(){
session(null);
//session_destroy();
//unset($_SESSION);
$this->redirect(U('Home/Index/index'));
}
關於session的幾點理解與測試
-
同一個瀏覽器,同一個session名,不同的網址,儲存的位置不同。銷燬其中一個,另外的並沒有收到影響。
-
session是儲存在伺服器上的,不同的網址意味著不同的伺服器。銷燬其中一個,其他的並沒有收到影響。
-
當你關閉瀏覽器的時候,session的死期也就到了。
-
同一個網址,不同的瀏覽器開啟都有對應的一個session。
-
大部分的Session機制都使用程序中Cookie來儲存Session_id的,關閉瀏覽器後這個程序也就自動消失了,程序中的Cookie自然就消失了,那麼Session_id也跟著消失了,再次連線到伺服器時也就無法找到原來的Session了。
-
我們可以在登陸時點選下次自動登入,比如說“記住我一週”。這就要用到我們上文提到的另一種Cookie了——硬碟中Cookie,這時Session_id將長期儲存在硬碟上的Cookie中,直到失效為止。