zoukankan      html  css  js  c++  java
  • Cookie

    Cookie

    由于Http协议是无状态协议,当同一个用户请求一个页面后,再请求同一个网站的另一个页面时,http协议并不能告诉服务器两个请求是来自同一个用户,不能将两次访问联系到一起。

    Cookie可以让Web服务器将一些网站登录用户的资料存放于客户端的电脑上。例如:当通过验证,成功登陆网站后,在同一个网站下第一个页面的PHP脚本,会把这个用户有关的信息设置到客户端电脑的Cookie中,当再次访问同一个网站中的其他脚本时,会自动携带Cookie中的数据一起访问,服务器中的每个脚本都可以接受Cookie中的数据,不需要每访问一个页面就重新输入一次登陆者的信息。

    Cookie的建立

    1. 向用户端电脑设置Cookie          setcookie();

    2. 在服务器端读取Cookie内容      $_COOKIE

    3. 将多维数组应用于Cookie中      setcookie(“member[name]”,’liangjie’);      setcookie(“member [email]”,’1853881164@qq.com’);

    4.删除Cookie                      setcookie(“member”,‘ ’,time()-3600);  //将时间设为超时

    实验1

    新建文件下,在其下面创建第一个.php文件,建立Cookie。代码如下:

    <?php
    header('Content-type:text/html;charset=utf-8');
    /*
    var_dump(setcookie('name','liangjie',time()+3600));
    echo '<br />';
    var_dump($_COOKIE);
    */
    //向客户端电脑设置Cookie,有效时间为当前时间+3600s
    var_dump(setcookie("member[name]",'liangjie',time()+3600));  //打印结果,若返回true则设置成功
    echo '<br />';
    var_dump(setcookie("member[email]",'185@163.com',time()+3600));//打印结果,若返回ture则设置成功
    ?>

    在同文件夹下面创建第二个.php文件,验证Cookie。代码如下:

    <?php
    header('Content-type:text/html;charset=utf-8');
        var_dump($_COOKIE);
    ?>
    

    在同文件夹下面创建第三个.php文件,删除Cookie。代码如下:

    <?php
    //遍历删除
    foreach($_COOKIE['member'] as $key => $val){
        var_dump(setcookie("member[{$key}]",'',time()-3600));
    }
    

    注:实验前最好清空一下浏览器浏览记录

    实验2

    此实验说明同一个用户使用不同的浏览器访问同一个网站时,设置的Cookie值不同

    新建文件下,在其下面创建第一个.php文件,建立Cookie。代码如下:

    <?php
    header('Content-type:text/html;charset=utf-8');
    //随机产生一个ID,并在此ID前随机产生一个数作为前缀(避免ID重复)交给Cookie
    $id = uniqid(rand(1000,9999).'_');
    var_dump(setcookie('id',$id,time()+3600));    //打印结果,返回值为ture,设置成功
    ?>
    

    新建文件下,在其下面创建第二个.php文件,验证Cookie。代码如下:

    <?php
    header('Content-type:text/html;charset=utf-8');
        var_dump($_COOKIE);
    ?>
    

    新建文件下,在其下面创建第三个.php文件,删除Cookie。代码如下:

    <?php
    //遍历删除
    foreach($_COOKIE['member'] as $key => $val){
        var_dump(setcookie("member[{$key}]",'',time()-3600));
    }
  • 相关阅读:
    带不带protype的区别
    一些方法(自己的认知)
    事件
    简单笔记
    freemarker Velocity获取request,session
    Freemaker中使用中括号来包含标签
    FreeMarker自定义标签
    Velocity模版自定义标签
    前端常用代码
    Eclipse中配置Ehcache提示信息
  • 原文地址:https://www.cnblogs.com/lian9/p/12266587.html
Copyright © 2011-2022 走看看