使用SESSION 來實現X天內自動登陸

假設現在有一個登陸功能,並且用戶可以選擇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還是存在的

發佈了75 篇原創文章 · 獲贊 3 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章