今天主要做的是Remember Me(記住我)功能的實現


        功能就是讓網站登錄過的人只要不注銷,下次打開網站之后直接進入,不用重復登錄,此功能主要是session與cookie的配合運用,具體實現是這樣的,在登錄頁面判斷並完成登錄,然后將所需數據寫入session及cookie中,代碼如下$_SESSION['name']=$user->name; 此處用的是ezSQL組件,因此寫入session是這種代碼,也可以吧需要用的的代碼寫入COOKIE並設置過期時間,如setcookie("name",$_SESSION['name'],time()+3600*24*7);直接把session中的值傳給COOKIE,Remember Me是一個單選框<input type="checkbox"  name="remember" id="remember" value="1" />判斷post值為1的話,把所有需要的數據寫入session,前台直接登錄后台就比較簡單了,因為判斷登錄成功后才會寫入session和cookie,因此前台頁面只需判斷cookie時候存在值即可,但為安全把判斷的值寫的相對多點為好,代碼如下

<?php
if(isset($_COOKIE['name']) && isset($_COOKIE['Password']) && isset($_COOKIE['Email'])  ){
if($_COOKIE['name']!="" && $_COOKIE['Password']!='' && $_COOKIE['Email']!="")
{
header("location:main.php");
}
}

?>

基本大概是這樣的,在做的過程中,我主要是先了解代碼,然后切入,相對於來說比較耗費時間,其中遇到的問題主要是邏輯處理,好好修改,基本已實現所需的功能。

登出注銷的話直接把cookie清空即可,代碼如下

setcookie("name","", time() - 3600);
setcookie("user_id","", time() - 3600);
setcookie("Email","", time() - 3600);
setcookie("Password","", time() - 3600);
setcookie("remember","", time() - 3600);

設置到期時間為24小時前即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM