問題思考?
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']解密;