今天主要做的是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小时前即可。

posted @ 2017-08-19 19:50  zdong  阅读(1953)  评论(0编辑  收藏  举报