PHP(基本语法)PHP中的Cookie---登录案例

文件结构:

 

login.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="./loginCookie.php" method="post">  
        姓名:<input type="text" name="username" placeholder="请输入用户名"><hr>  
        密码:<input type="password" name="password" placeholder="请输入密码"><hr>  
        <input type="submit" value="提交按钮">  
    </form>  
</body>
</html>

loginCookie.php:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>  
<?php
    include 'config.php';  
    /**1、连接数据库 */
    $conn = mysqli_connect(DB_HOST,DB_USER,DB_PWD,DB_NAME);  
    if(!$connect){  
        die("could not connect:".mysqli_error());  
    }else{
        echo "连接成功<br>"; 
        /**识别cookie,判断是否访问过,有无cookie或者是否过期 */
        if (($_COOKIE['username'] != null)&&($_COOKIE['password'] != null)) {  
            $userName = $_COOKIE['username'];
            $password = $_COOKIE['password'];
            /** 连接数据库,从db获取用户信息 */
            // $conn = mysqli_connect('localhost','root','root','login');
            $res = mysqli_query($conn,"select * from user where `username` =  '$userName' ");
            $row = mysqli_fetch_assoc($res);
            if ($row['password'] == $password) {
                /** 验证通过后跳转到登录后的欢迎页面 */
                header('location: welcome.php' . "?username=$userName");
            } 
        }else{  
            echo("上一个COOKIE过期");  
        }  
        /**如果第一次访问或者cookie过期则重新到数据库查找对比 */
        if(($_POST['username'] != null)&&($_POST['password'] != null)){  
            $userName = $_POST['username'];
            $password = $_POST['password'];
            /** 连接数据库,从db获取用户信息 */
            // $conn = mysqli_connect('localhost','root','root');
            // mysqli_select_db($conn,'login');
            $sql = "select * from user where `username` = '$userName' ";
            $res = mysqli_query($conn,$sql);
            $row = mysqli_fetch_assoc($res);/**从结果集中取得一行作为关联数组 */
            /**执行判断--用户名和密码是否正确 */
            if($row){
                /**echo('用户名存在');用户名存在的情况下判断密码 */
                if ($row['password'] == $password) {
                    /**
                     * 密码验证通过,设置cookies,把用户名和密码保存在客户端
                     * 设置时效一个月60*60*24*30,一个月后这个cookie失效。这里我们设置60s失效,为time()+60
                     */
                    setcookie('username',$userName,time()+60);
                    setcookie('password',$password,time()+60);
                    /** 最后跳转到登录后的欢迎页面 */
                    header('location: welcome.php' . "?username=$userName");
                }
            }else{
                /**不存在该用户 */
                exit('用户名错误');
            }
        }else{  
            echo "请输入用户名或密码";  
        }  
    }


    /**5、关闭连接 */
    $close = mysqli_close($connect);  
    if(!$close){  
        die("关闭数据库失败");  
    }else{  
        echo "关闭成功";  
    }  
?>

config.php:

<?php
    //数据库服务器
    define('DB_HOST', 'localhost');
    //数据库用户名
    define('DB_USER', 'root');
    //数据库密码
    define('DB_PWD', 'root');
    //数据库名
    define('DB_NAME', 'login');
    //字符集
    define('DB_CHARSET', 'utf8');
?>

welcome.php:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>    
<?php  
    $user = $_GET['username'];
    echo "欢迎"."<h1>".$user."</h1>";  
?>  

 

 

 

 

.

posted @ 2021-01-18 14:00  剑仙6  阅读(268)  评论(0编辑  收藏  举报
欢迎访问个人网站www.qingchun.在线