前言:之前關於用戶端cookie和服務端session的關係有點模糊,認為cookie禁用後session指定不能用了,通過驗證後才發現自己的錯誤。
1:在php環境中的php.ini中有關session的設定值:
//處理session存取的模式 session.save_handler = files //session檔案存放路徑 session.save_path = /tmp //session使用cookie的功能,啟動: 1 session.use_cookies = 1 //session名字 session.name = PHPSESSID //自動啟動;0:關;1:開啟 session.auto_start = 0 //session使用cookie的生存期,以秒為單位 session.cookie_lifetime = 0這些預設值,不需要修改,就可以使用session了。2:但是當我們得瀏覽器禁用cookie時,則會出現你認為的樣子,session不能用。 此時我們應該在php.ini中再去研究一下發現 session.use_trans_sid = 1//這個欄位允許SessionID通過URL明文傳輸 session.use_only_cookies = 1 ; // 開啟僅使用cookies存放會話id 此時再去測試發現session又擷取到了。 但當 session.use_only_cookies =0;時,無法擷取到session的,在php.ini中這個值預設是03:代碼:①當瀏覽器沒有禁用cookie時:a.php: b.php ②當瀏覽器禁用cookie後,並且設定php.ini中 session.use_trans_sid = 1//這個欄位允許SessionID通過URL明文傳輸 session.use_only_cookies = 1; // 開啟僅使用cookies存放會話id 代碼: a.php b.php
以上是我對cookie和session的理解,如有不對,可以留言,一起學習,進步。