Home >php教程 >php手册 >php利用$_COOKIE实现自动登录程序代码

php利用$_COOKIE实现自动登录程序代码

WBOY
WBOYOriginal
2016-05-26 08:20:581224browse

自动登录的原理很简单就是用户初次登录时把用户名与密码保存在cookies中,这样下次登录时加以判断cookies值中的用户名与密码是不是与数据库一样,如果是的就自动登录并设置session 即可,具体如下。

做网站的时候经常会碰到要实现记住密码,下次自动登录,一周内免登陆,一个月内免登陆这种需求。这种功能一般都是通过cookie来实现的。本篇文章将简单说一下如何使用php实现该需求的。当然实现该需求的方法有N多种。

整个过程就是用户在登陆的时候,如果选择了记住密码或者一周内免登陆等这个选项的时候,则在用户成功登陆操作完成之后,存储一个实现自动登录的cookie的数据到数据库的用户表里面,作为下次自动登录时验证用。验证通过则自动登录,否则需要输入用户名,密码进行登录。保存的这个cookie值则可以取一个随机码。

具体示例代码如下:

<?php
$username = trim($_POST[&#39;username&#39;]);
$password = md5(trim($_POST[&#39;password&#39;]));
$ref_url = $_GET[&#39;req_url&#39;];
$remember = $_POST[&#39;remember&#39;]; //是否自动登录标示
$err_msg = &#39;&#39;;
if ($username == &#39;&#39; || $password == &#39;&#39;) {
    $err_msg = "用户名和密码都不能为空";
} else {
    $row = getUserInfo($username, $password);
    if (empty($row)) {
        $err_msg = "用户名和密码都不正确";
    } else {
        $_SESSION[&#39;user_info&#39;] = $row;
        if (!empty($remember)) { //如果用户选择了,记录登录状态就把用户名和加了密的密码放到cookie里面
            setcookie("username", $username, time() + 3600 * 24 * 365);
            setcookie("password", $password, time() + 3600 * 24 * 365);
        }
        if (strpos($ref_url, "login.php") === false) {
            header("location:" . $ref_url);
        } else {
            header("location:main_user.php");
        }
    }
}

另外在访问网站的每个页面时,都要先进行一遍如下函数的检查。

//检查用户是否登录

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


文章网址:

随意转载^^但请附上教程地址。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn