zoukankan      html  css  js  c++  java
  • PHP cookie基本操作

    PHP中Cookie的使用---添加/更新/删除/获取Cookie 及 自动填写该用户的用户名和密码和判断是否第一次登陆

    什么是cookie

    服务器在客户端保存用户的信息,比如登录名,密码等

    这些数据就像小甜饼一样,数据量并不大,服务器端在需要的时候可以从客户端读取,保存在客户端的浏览器缓存目录下

    ①  当浏览器访问,cookie.php时,服务器还以Set-Cookie:name=zxf;expire=Wed,21-Sep-2017 20:14 GMT会送http响应,当浏览器获取到该消息后,就会保存该cookie的信息到本地磁盘

    ②  如果我们没有时间(第三个参数)

    cookie不会保存到客户端,当浏览器会话结束,cookie会失效

    ③  cookie保存的是字符串信息

    ④  客户端可以保存多个key=>val

    ⑤  cookie在保存过程中,会对中文进行urlencode编码

    cookie可以有多个key=>val,可以给不同的键值,制定不同的有效时间

    代码如下:xx.php

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?php
    //添加cookie
    setcookie("name","zxf",time()+3600);
    //数组
     
    /$arr = array(1,2,3);
     $arr_str = serialize($arr);
     setcookie("a",$arr_str,time()+3600);
     
    //获取cookie
      
    var_dump($_COOKIE);
     
    //更新cookie
     
    setcookie("name","aaa",time()+3600);
     
    //删除cookie
     
    setcookie("name","",time()-20);
     
    //删除所有
     
    foreach ($_COOKIE as $key => $value) {
     setcookie($key,"",time()-1);
     }
    echo "成功";
     ?>

    如果你删除的cookie的key=>val没有删除完,则这个cookie在客户端保留,如果把这个网站的cookie都删除的,则浏览器会把cookie文件删除

    判断是否第一次登陆

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
     
    //先判断cookie里是否有上次的登录信息
     
    if(!empty($_COOKIE[‘lastVisit'])){
     
      echo “你上次登陆的时间是”.$_COOKIE[‘lastViat'];
     
    //更新时间
     
    setcookie(“lastVisit”,”data(Y-m-d H:i:s)”, time()+3600);
     
    }else{
     
    //说明用户是第一次登陆
     
    echo”第一次登陆”;
     
    //更新时间
     
    setcookie(“lastViait”,”data(“Y-m-d H:i:s”)”, time()+3600);
     
    }
    ?>

    打开登陆界面的时候,自动填写该用户的用户名和密码

    checklogin.php

    //获取用户是否选中了保存id
     
    if(!empty($_POST[‘cookie'])){
     
      setcookie(“id”,$id,time()-100);
     
    }else{
     
      if(!empty($_COOKIE[‘id'])){
     
       setcookie(“id”,$id,time()-10);
     
    }
    }

    setcookie(name,value,expire,path,domain,secure);
    setcookie(string 名字,string 值,int 超期时间,string 路径,string 域名,bool 安全连接);
    注释:setcookie() 函数必须位于 <html> 标签之前。

        **name 必需。**规定 cookie 的名称。
        **value 可选。**规定 cookie 的值。
        **expire 可选。**规定 cookie 的过期时间。time()+36002430 将设置 cookie 的过期时间为 30 天。如果这个参数没有设置,那么 cookie 将在 session 结束后(即浏览器关闭时)自动失效。
        **path 可选。**规定 cookie 的服务器路径。如果路径设置为 “/”,那么 cookie 将在整个域名内有效.如果路径设置为 “/test/”,那么 cookie 将在 test 目录下及其所有子目录下有效。默认的路径值是 cookie 所处的当前目录。
        **domain 可选。**规定 cookie 的域名。为了让 cookie 在 example.com 的所有子域名中有效,您需要把 cookie 的域名设置为 “.example.com”。当您把 cookie 的域名设置为 www.example.com 时,cookie 仅在 www 子域名中有效。
        **secure 可选。**规定是否需要在安全的 HTTPS 连接来传输 cookie。如果 cookie 需要在安全的 HTTPS 连接下传输,则设置为 TRUE。默认是 FALSE。


       
  • 相关阅读:
    【AtCoder】ARC067 F
    【AtCoder】ARC095 E
    【BZOJ】4559: [JLoi2016]成绩比较 计数DP+排列组合+拉格朗日插值
    【CodeForces】961 F. k-substrings 字符串哈希+二分
    【CodeForces】961 G. Partitions 斯特林数
    【BZOJ】2310: ParkII 插头DP
    【BZOJ】2331: [SCOI2011]地板 插头DP
    webpack从0开始---(二)
    webpack从0开始---(一)
    前端基础知识(不应需要思考的知识点)三
  • 原文地址:https://www.cnblogs.com/xiaozhang666/p/11189310.html
Copyright © 2011-2022 走看看