您好,欢迎光临! 推荐您使用Chrome浏览器访问本站。

PHP网站中记住我功能实现

PHP中有cookie相关的函数, 用户登录成功的时候,可能有如下的语句:
setcookie(“user”, “user1”, time()+3600);

判断用户是否登录的时候,有类似这样的语句:
if (isset($_COOKIE[“user”])){
echo “已经登录”;
}

用户退出的时候,有类似这样的语句:
setcookie(“user”, “”, time()-3600);

如果用户登录后一直没点退出按钮,3600秒之后,cookie也会失效。
如果想让用户保持足够长的时间 time()+3600*24*365 就是登录后一年内都有效。

另:

<code>

function checklogin(){ 

if(emptyempty($_SESSION['user_info'])){  // 检查一下session是不是为空
if(emptyempty($_COOKIE['username']) || emptyempty($_COOKIE['password'])){ // 如果session为空,并且用户没有选择记录登录状
header(”location:login.php?req_url=”.$_SERVER['REQUEST_URI']);  // 转到登录页面,记录请求的url,登录后跳转过去,用户体验好。
}else{  // 用户选择了记住登录状态
$user = getUserInfo($_COOKIE['username'],$_COOKIE['password']);  // 去取用户的个人资料
if(emptyempty($user)){  // 用户名密码不对没到取到信息,转到登录页面
header(”location:login.php?req_url=”.$_SERVER['REQUEST_URI']); 
}else
$_SESSION['user_info'] = $user;  // 用户名和密码对了,把用户的个人资料放到session里面
//检查用户是否登录
function checklogin(){ 
if(empty($_SESSION['user_info'])){ //检查一下session是不是为空
if(empty($_COOKIE['username']) || empty($_COOKIE['password'])){ //如果session为空,并且用户没有选择记录登录状
header(”location:login.php?req_url=”.$_SERVER['REQUEST_URI']); //转到登录页面,记录请求的url,登录后跳转过去,用户体验好。
}else//用户选择了记住登录状态
$user = getUserInfo($_COOKIE['username'],$_COOKIE['password']); //去取用户的个人资料
if(empty($user)){ //用户名密码不对没到取到信息,转到登录页面
header(”location:login.php?req_url=”.$_SERVER['REQUEST_URI']); 
}else
$_SESSION['user_info'] = $user//用户名和密码对了,把用户的个人资料放到session里面
}
</code>

您可能也喜欢