• cookie工作原理


    • 当客户访问某个基于PHP技术的网站时,在PHP中可以使用setcookie()函数生成一个cookie,系统经处理把这个cookie发送到客户端并保存在C:Documents andSettings用户名Cookies目录下。
    • cookie是HTTP标头的一部分,因此setcookie()函数必须在HTML本身的任何内容送到浏览器之前调用。这种限制与header()函数一样(如需了解head()函数,请自行查阅)。
    • 当 客户再次访问该网站时,浏览器会自动把C:DocumentsandSettings用户名Cookies目录下与该站点对应的cookie发送到 服务器,服务器则把从客户端传来的cookie将自动地转化成一个PHP变量。在PHP5中,客户端发来的cookie将被转换成全局变量。你可以通 过$_COOKIE[‘xxx’]读取。

    定义一个cookie

    • 设置cookie:
    • 语法:boolsetcookie(stringname,[stringvalue,[int expire,[stringpath,[stringdomain,[int secure]]]]]);

    本cookie函数可以有6个属性,常用的有3个参数。

    1. 实例:

    $value="the best way is by yourself";

    setcookie("cookiename",$value,time()+60*60*24*7);

    1. 接收和处理cookie

    PHP对cookie有很好的支持,和form表单一样,接收的时候PHP会自动从web服务器接收HTTP头并且它。接收的时候和表单接收一样,用$_COOKIE[“cookiename”]或者$HTTP_COOKIE_VARS[“cookiename”](不提倡使用)

    1. 注意:

    如果网站有几个不同的文件目录,使用不带路径的cookie,那么只能在设置cookie的文件所在路径下访问到此cookie。如果指定路径,则按照设置时的路径作为访问cookie的指定路径。

    创建cookie数组:

    1. 其一:

    setcookie("CookieArray[0]","Value1");

    setcookie("CookieArray[1]","Value2");

    1. 其二:

    setcookie("CookieArray['one']","Value1");

    setcookie("CookieArray['two']","Value2");

    1. setcookie()中使用数组

    <?php

    setcookie("cookie[three]","cookiethree");

    setcookie("cookie[two]","cookietwo");

    setcookie("cookie[one]","cookieone");

    //刷新页面后,显示出来

    if(isset($_COOKIE['cookie'])){

    foreach($_COOKIE['cookie']as$name=>$value){

    echo"$name:$value<br/> ";

    }

    }

    ?>

    删除cookie

    1. 要删除一个已经存在的cookie,有两个办法:

         1、调用只带有name参数的setcookie,那么名为这个name的cookie将被从客户机上删掉;

    setcookie(“MyCookie”);//删除MyCookie

        2、过期时间就行,那么这个Cookie在这个页面的浏览完之后就被删除了(其实是失效了)。

    例如:

    setcookie(“MyCookie”,”Value”,time()-1);

    //删除MyCookie。

    要注意:当一个Cookie被删除时,它的值在当前页仍然有效。如果要把cookie设置成在浏览器关闭后就失效。那么可以直接把expiretime设为0,或者不设置此值。

    例如:setcookie(“name”,”value”,0)。

    cookie注意事项

    • 1、setcookie()之前不能有任何html输出,就是空格,空白行都不行,必须在html文件的内容输出前设置
    • 2、setcookie()后,你在当前页调用echo$_COOKIE[“name”]不会有输出。必须刷新或到下一个页面才可以看到cookie值。
    • 3、不用浏览器对cookie处理不同。客户端可以禁用cookie,浏览器也会限制cookie的数量。一个浏览器能创建的cookie数量最多为300个,并且每个不能超过4KB,每个WEB站点能设置的cookie总数不能超过20个。
    • 4、cookie是保存在客户端的,用户禁用了cookie,你的cookie自然也就没作用啦!因此,避免过度依赖cookie,要先想好如果cookie被禁用时的解决方案,以备万一。
  • 相关阅读:
    开博说两句
    学习总结 (持续更新)
    ip代理 120203
    [vs2005]关于预编绎网站的问题[已预编译此应用程序的错误]
    JAVA类基础
    集合类和泛型
    IO流——字符流
    多线程和包
    多态和内部类
    抽象类与接口
  • 原文地址:https://www.cnblogs.com/longhao/p/3558929.html
Copyright © 2020-2023  润新知