thinkphp中的session的使用和理解!


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的幾點理解與測試

  1. 同一個瀏覽器,同一個session名,不同的網址,保存的位置不同。銷毀其中一個,另外的並沒有收到影響。

  2. session是保存在服務器上的,不同的網址意味着不同的服務器。銷毀其中一個,其他的並沒有收到影響。

  3. 當你關閉瀏覽器的時候,session的死期也就到了。

  4. 同一個網址,不同的瀏覽器打開都有對應的一個session。

  5. 大部分的Session機制都使用進程中Cookie來保存Session_id的,關閉瀏覽器后這個進程也就自動消失了,進程中的Cookie自然就消失了,那么Session_id也跟着消失了,再次連接到服務器時也就無法找到原來的Session了。

  6. 我們可以在登陸時點擊下次自動登錄,比如說“記住我一周”。這就要用到我們上文提到的另一種Cookie了——硬盤中Cookie,這時Session_id將長期保存在硬盤上的Cookie中,直到失效為止。


免責聲明!

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



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