15621857753

PHP中关于Cookie的讲解 一个完美的例子

来源:齐鲁建站 栏目:开发教程 阅读: 日期:2023-01-10

Cookie是通过将数据保存在客户端来实现与服务端保持连接的,而Session是通过将数据保存在服务器端来实现保持连接的。获得CK,一种是通过cookie,一种是通过把值嵌入网页传给客户端。传到服务器,一种是cookie,一种是标准的Query String POST。

php中提供了一个函数来让我们设置cookie,这个函数是:

bool setcookie  (
        string $名字
        [, string $值]
        [, int $过期时间  = 0]
        [, string $路径]
        [, string $域名]
        [, bool $安全  = false]
        [, bool $http只读  = false]
    );

一般来说,用不到上面那么多参数

这么用:

setcookie(cookie名,cookie值,cookie有效期);

没错,就那么3个

就可以在服务端通过$_COOKIE['name'] 来读取cookie了

一般是不会把用户名和密码放到cookie中的,因为这并不安全,容易泄露自己的信息,请不要把重要的信息放到cookie中

:::例子:::

cooke.php

<?php
//第一次登录的时候,通过用户输入的信息来确认用户
if ( ( $_POST['username'] != null ) && ( $_POST['password'] != null ) ) {
    $userName = $_POST['username'];
    $password = $_POST['password'];
    //从db获取用户信息
    //PS:数据库连接信息改成自己的 分别为主机 数据库用户名 密码
    $conn = mysqli_connect('127.0.0.1','root','root');

    mysqli_select_db($conn,'aaaaaa');

    $sql = "select * from info where `Name` = '$userName' ";
    $res = mysqli_query($conn,$sql);
    $row = mysqli_fetch_assoc($res);
    if ($row['Password'] == $password) {
        //密码验证通过,设置cookies,把用户名和密码保存在客户端
        setcookie('username',$userName,time()+60*60*24*30);//设置时效一个月,一个月后这个cookie失效
        setcookie('password',$password,time()+60*60*24*30);
        //最后跳转到登录后的欢迎页面
        header('Location: welcome.php' . "?username=$userName");
    }
}

//再次访问的时候通过cookie来识别用户
if ( ($_COOKIE['username'] != null)  && ($_COOKIE['password'] != null) ) {
    $userName = $_COOKIE['username'];
    $password = $_COOKIE['password'];

    //从db获取用户信息
    //PS:数据库连接信息改成自己的 分别为主机 数据库用户名 密码
    $conn = mysqli_connect('localhost','root','root','aaaaaa');
    $res = mysqli_query($conn,"select * from info where `Name` =  '$userName' ");
    $row = mysqli_fetch_assoc($res);
    if ($row['Password'] == $password) {
        //验证通过后跳转到登录后的欢迎页面
        header('Location: welcome.php' . "?username=$userName");
    }
}

?>
<html>
<head>

</head>
<body>
<form action="" method="POST">
    <div>
        用户名:<input type="text" name="username" />
        密  码:<input type="text" name="password" />
        <input type="submit" value="登录">
    </div>
</form>
</body>
</html>

welcome.php

<?php
$user = $_GET['username'];
?>
<html>
<head>

</head>
<body>
   welcome,<?php echo $user;?>
</body>
</html>
TAG: PHP Cookie
展开