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>