php中會話機制相關問題

問題思考?

1、客戶端禁用cookie後,還能訪問SESSION嗎?

PHP中的session在默認情況下是使用客戶端的Cookie來保存session id的,所以當客戶端的cookie出現問題的時候就會影響session了。但是Session並不完全依賴Cookie,它還可以通過URL Get傳遞session id的。這需要你將php.ini中session.use_trans_sid = 1,這表示允許SessionID通過URL明文傳輸

php.ini 中 SESSION 的配置
session.use_only_cookies = 1; // 開啓僅使用cookies存放會話id
session.use_trans_sid = 1; // 允許SessionID通過URL明文傳輸

在這種情況下雖然已經允許了SessionID通過URL明文傳輸,擔是同時又開啓了僅使用cookies存放會話SessionID,所以在URL中明文傳輸的PHPSESSIONID參數值是無效的,SESSION不能用。
php.ini 中 SESSION 的配置
session.use_trans_sid = 0; // 禁止SessionID通過URL方式明文傳輸


2、7天免登錄的實現方式

(1)cookie方式

setcookie('uname',加密信息,time()+3600*7);//cookie方式實現免登錄
對$_COOKIE['uname']解密;

(2)session

setcookie(session_name(),session_id(),time()+3600,"/");
session('uname',加密信息);  //設置cookie
對$_COOKIE['uname']解密;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章