php入门教程—打通前后端

php入门教程(八)使用cookie和session

2019-10-17  本文已影响0人  党云龙

cookie是存在客户端的,跟前端的使用方法几乎一样。
通过setcookie方法去设置,删除的话,只需要在里面传入time()-1或者0即可。

使用cookie很简单!
<?php
    date_default_timezone_set("PRC"); //设置时区
    if(!isset($_COOKIE['visittime'])){
        setcookie("visittime",date("Y-m-d Y:i:s"));
        echo "欢迎您的第一次光临!";
    }else{
        setcookie("visittime",date("Y-m-d Y:i:s"),time()+60);
        //time() 获取当前时间的时间戳
        //删除cookie只要设置time()-1或者0就可以了
        echo "您上次访问网站的时间为:".$_COOKIE["visittime"];
        echo "
";
    }
    echo "您的本次访问时间为:".date("Y-m-d Y:i:s");
?>

但是cookie有一份非常不好的地方就是,如果用户在本地,清除了浏览器缓存,那你设置的cookie就失效了。
所以还是推荐下面这种方法,把数据储存在服务器:使用session。

设置session示例:


发起登陆
登陆完成
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>登陆验证</title>
    </head>
    <body>
        <?php
            $username = $_POST["username"];
            $password = $_POST["password"];
            
            //查询数据库
            $con = mysqli_connect("127.0.0.1:3306","root","dyl_mysql!07","phptest");//连接数据库服务
            mysqli_query($con,"set names 'utf8'"); //把连接方式设置为utf-8
        
            //查询账号密码 就是 查询有没有用户名和密码都相当的这一行
            $sql = "select * from login where username='$username' and password='$password'";
            $result = mysqli_query($con,$sql);
            //注意这里必须把结果传入mysqli_num_rows方法中
            $num_rows = mysqli_num_rows($result);
            
            if($num_rows==1){
                //开启session
                session_start();
                //先判断一下用户是不是已经登陆过了
                if($_SESSION['username']=="dangyunlong"){
                    echo "您已经登陆!";
                }else{
                    //如果没有登陆过,在存如session
                    //解开$result为数组形式
                    $rows = mysqli_fetch_array($result,MYSQLI_ASSOC);
                    //echo $rows['username'];
                    $_SESSION['username'] = $rows['username'];
                    echo "<script>alert('登陆成功!')</script>";
                }
            }else{
                echo "<script>alert('用户名或者密码错误,登陆失败!');history.back();</script>";
                exit();
            }
        ?>
        
    </body>
</html>

删除session


unset($_SESSION[$name])

当用户退出登陆的时候需要用到这个。

session能不能像cookie一样设置过期时间?


session和cookie不一样,session默认有效时间为24分钟。
我们可以通过很多方法来控制它的过期时间,你可以自己百度,入门教程就不在冗述了。

上一篇下一篇

猜你喜欢

热点阅读