首页 > 编程 > PHP > 正文

PHP进阶:灵活地运用Cookie

2020-03-22 20:24:14
字体:
来源:转载
供稿:网友
  • html' target='_blank'>Cookie是强大而方便的功能,它能提供一个范围内的全程变量,来看看cookie的语法:

    setcookie(cookievalue, value, time, path, domain);

    cookievalue是设置的 cookie 变量;
    value 是将一个值设置成cookie的变量;
    time 是这个 cookie 变量作用的时间;
    path 是 cookie 作用的路径;
    domain 是 cookie 作用的域。

    注意:
    在php程序内设置cookie时一定不能在html这个标记的后面设置,必须保证在设置cookie前无数据输出。
    根据register_globals的设置,可以从cookie建立普通的php变量,不过一般不推荐依赖于此特性,因为出于安全考虑该选项通常是关闭的。
    php会自动的接收和处理cookie,我们只需要在需要它的时候直接调用即可,你可以使用print_r($_cookie)把整个cookie数组的值全部打印出来。

    下面看个例子:
    setcookie("cookietime","2001-5-2",time()+3600,"/","test.php");

    这个 cookie 设置的意思是给日期 "2001-5-2" 设置一个 cookie 变量 $cookietime ,其作用时间为 3600 秒,这个变量在 /test.php 里生效。
    这时在 test.php 里加上 echo $cookietime; 就会显示出 2001-5-2 .

    如果将 cookie 里的时间置空,那么关闭浏览器后,cookie 就失效了.

    cookie有一个特殊的地方就是cookie设置的值并不会马上被执行,直到第二次引用时才会被执行,那么第一次引用的cookie值是什么呢?
    就是cookie上一次设置的值,这儿理解起来有点费劲,没关系,举个例子就全明白了:
    setcookie("cookietime",time,time()+3600,"/","test.php");
    第一次引用时 $cookietime内没有值,第二次引用时发现 $cookietime 内的 time才显示出来,修该time为 2001:

    setcookie("cookietime",2001,time()+3600,"/","test.php");
    再执行一次,第一次引用时 $cookietime 的值为 time,第二次引用 $cookietime 的值才为 2001;
    那么 cookie 的这个特性有何功用呢?聪明的读者可能已经知道其用法了,就是用于通告和报警功能上的。

    看个关于使用cookie 这个特性的例子,这里程序要实现的功能是当用户下一次来浏览网站时,所有这个用户没看过的新信息后面都添加一个 (new),用cookie 来完成这个功能再简单不过了,至少在我看来还没有任何其它方法能比使用 cookie 来完成这个功能更简单的了.

    存储信息自然需要时间值,只要数据库有存储与每条信息相关的时间值加上 cookie 就能完成这个看上去还不错的功能~
    test.php:

    $time=date('Y-m-d H:i:s');
    setcookie("cookietime",$time,time()+3600000,"/","test.php");
    ......
    ......
    //从数据库取出时间值

    PHP编程

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表