php-day9

作者: 致自己_cb38 | 来源:发表于2019-04-11 11:00 被阅读0次

    一、 什么是COOKIE?

    cookie存在客户端的一段小文本。网站为了辨别用户身份,进行SESSION追踪而存储在用户本地中断上的数据(通常会加密)

    1.COOKIE的工作原理

    image.png

    描述:

    用户第一次访问你的网站->服务器端会将用户信息设置为cookie(可以理解为制造饼干的过程)->通过http协议发送给用户(浏览器)->在客户端,cookie以文本形式保存下来。

    用户第二次访问你的网站->在http协议的请求头中会携带者cookie信息->

    服务器会对cookie进行验证-.第二次响应->猜你喜欢。

    打开cookie文本文件:

    C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Cookies

    image.png

    2.设置COOKIE

    setcookie($name,$value,$expire,$path,$domain);
    
    说明:$name // cookie的名称
    
         $value  //cookie的值
    
         $expire   //过期时间,单位秒,当前时间戳加上秒数
    
         time()+ 3600  有效时间1小时,
    
         time() +604800,有效时间一周。
    
    $path   //有效路径      ‘/’
    
            默认是当前根目录,所有的子目录有效。
    
    $domain   //有效域名,默认是当前域名,如:www.default.com
    
    image.png
    image.png

    完整的设置cookie

    image.png

    3.关于COOKIE值的类型

    1)字符串:

    cookie 第二个参数(cookie的值)只能设置成字符串

    image.png

    2) image.png

    3)数组形式:

    设置形式 :setcookie(‘c1[k1]’,值);


    image.png
    image.png

    4.读取COOKIE

    使用超全局变量$_COOKIE[‘cookie的名称’]

    我们可以通过名称来获取值

    设置cookie: setcookie(‘username’,’manyi’,time()+999);

    获取值 echo $_COOKIE[‘username’];

    5.删除COOKIE的方法

    第一种 : setcookie(‘名’,’’) //将cookie值设置为空

    第二种: setcookie(‘名’);//只传第一个参数,其他留空

    第三种:setcookie(‘username’,’manyi’,time()-1);设置一下过期时间


    image.png

    6.实例:记录登录的用户名

    image.png

    展示用户登录页面showlogin.php:


    image.png

    执行登录 dologin.php


    image.png

    展示后台主页main.php


    image.png

    二、 什么是SESSION?

    1.SESSION的工作原理

    image.png

    2.开启SESSION会话功能

    session_start(); 如果使用SESSION必须开启

    作用:生成一个新的sessionid 号。

    session_start() 只能一个页面开启一次。

    image.png

    3.获取当前的SESSION的ID值

    image.png
    image.png

    4.获取当前的SESSION的cookie名称

    session_name();

    image.png
    image.png

    5.设置(创建,将写入session)SESSION数据

    image.png

    可以将SESSION的值设置为字符串或者是数组

    6.读取SESSION数据

    $_SESSION[‘名’]

    如:$_SESSION[‘userino’]

    获取:

    image.png

    7.删除SESSION数据

    1) Unset

    删除SESSION变量

    image.png

    2) session_destroy();

    image.png

    3) 如何彻底删除session?

    a unset() 将变量删除

    b session_destroy()删除当前的session文件

    c 将session的cookie删除

     setcookie(名,值,time()-999);
    
     setcookie(session_name(),session_id(),time()-999);
    

    8.实例:用户登录

    1)展示用户登录

    image.png

    2)执行用户登录

    image.png

    3)用户登录后首页

    image.png

    4)用户退出

    image.png

    9.实例:模拟购物车

    1)商品列表goodslist

    image.png

    2)将商品加入到购物车

    image.png

    3)购物车列表

    image.png

    4)从购物车列表中删除

    image.png

    10.SESSION的垃圾回收:

    比如用户在非正常退出时,服务器生成的session文件会一直存在。时间一长会越来越多。php会将这部分文件按时间,按一定的比例进行删除。

    SESSION的垃圾回收时间(session.gc_maxlifetime);

    session.gc_maxlifetime = 1440 24分钟,文件如果超过24分钟没有被访问,即为垃圾文件。

    回收的概率(session.gc_probability,session.gc_divisor)

    session.gc_probability = 1

    session.gc_divisor = 1000

    image.png

    三、 SESSION相关配置

    1. session.name

    image.png

    2. session.auto_start =0 不开启 1为自动开启(不建议)

    image.png

    3. session.cookie_lifetime = 0 //浏览器关闭,session会话结束。

    image.png

    4. session.cookie_path 指定了session会话cookie的有效路径

    image.png

    5.session.cookie_domain 指定了session会话cookie的有效域名

    image.png

    如果用ini_set()函数来改以上的配置文件。一定在session_start()之前才有效。

    四、 SESSION和COOKIE的区别

    image.png

    相关文章

      网友评论

          本文标题:php-day9

          本文链接:https://www.haomeiwen.com/subject/ypwziqtx.html