假設現在有一個登陸功能,並且用戶可以選擇X天內自動登陸
實現方法:
登陸後肯定要把uid記錄在SESSION中
而SESSIONID則會記錄在COOKIE中
那麼現在到登陸界面時,只需通過COOKIE中的SESSIONID去查找服務器上的SESSION文件,看是否有uid,存在則代表運行自動登陸,不存在則說明已經登出了
但問題在於關閉瀏覽器時,默認會把COOKIE中的值清空,所以必須設置COOKIE的過期時間
兩種方法:
1.在PHP.ini中設置 session.cookie_lifetime 和 session.gc_maxlifetime這兩個值
2.代碼中設置:
$PHPSESSID = $_COOKIE['PHPSESSIID'];
setcookie('PHPSESSID',$PHPSESSID,time()+X*24*60*60)
第一種方法是在配置文件修改,那麼會把全部的COOKIE值都設爲相同的過期時間,沒法根據不同的用戶作出不同的響應了
第二種方法控制力更強一些!
另外 COOKIE的過期判斷,根據客戶端的系統時間來判斷,也就是說如果設置了10天的過期時間,然後把自己的電腦的系統時間改爲15天后,那麼COOKIE會直接過期
如果瀏覽器一直開着,則不會過期,繼前面的步驟再把時間改爲現在,COOKIE還是存在的