zoukankan      html  css  js  c++  java
  • php中的cookie用法

    cookie和session都可以暂时保存在多个页面中使用的变量,但是它们有本质的差别。

    cookie存放在客户端浏览器中,session保存在服务器上。它们之间的联系是session ID一般保存在cookie中。

    cookie工作原理

    当客户访问某个网站时,在PHP中可以使用setcookie函数生成一个cookie,系统经处理把这个cookie发送到客户端并保存在c:Documents and Settings用户名Cookies

    目录下。cookie是HTTP标头的一部分,因此setcookie函数必须在任何内容送到浏览器之前调用。这种限制与header()函数一样。当客户再次访问该网站时,浏览器会

    自动把c:Documents and Settings用户名Cookies目录下与该站点对应的cookie发送到服务器,服务器则把从客户端传来的cookie将自动地转化成一个PHP变量。

    通过$_COOKIE['xxx']读取客户端发来的cookie。

    创建 cookie

    通过 setcookie() 函数来创建一个 cookie ,成功返回 TRUE ,否则返回 FALSE 。

    语法:

    bool setcookie( string name [, string value [, int expire [, string path [, string domain ]]]] )

    参数说明:

    name     cookie 名称

    value     可选,cookie 值

    expire     可选,过期时间,时间戳格式

    path     可选,服务器端有效路径,/ 表示整个域名有效,默认为当前设置 cookie 时页面的路径

    domain     可选,该 cookie 有效的域名

    <?php
    
    setcookie("username", "nostop", time()+3600); //设置了一个名称为 username 的cookie,其值为 xiaoli ,并在1小时候后过期。如果时间也被省略,cookie 将会在会话结束后(一般是浏览器关闭)失效。
    
    ?>

    cookie 会以一定格式被存储在用户计算机特定位置。

    <?php
    
    setcookie("username", "nostop", time()+3600, "/", ".example.com"); //在example.com 域名的 / 路径下该 cookie 都有效(即全站有效)。
    
    ?>

    读取 cookie

    PHP 内置了 $_COOKIE 变量以访问设置的 cookie 值。

    例子:

    <?php
    
    echo $_COOKIE["username"];    //nostop
    
    ?>

    销毁 cookie

    可以通过设置 cookie 过期时间为以前的时间点来销毁一个 cookie :

    1 <?php
    2 
    3 setcookie("username", "", time()-3600);
    4 
    5 ?>

    cookie注意事项

    1、SetCookie()之前不能有任何html输出,就是空格,空白行都不行。

    2、SetCookie()后,你在当前页调用echo $_COOKIE["name"]不会有输出。必须刷新或到下一个页面在过期之前才可以看到Cookie值。

    3、由于 cookie 信息存储于用户的计算机中,那么就有可能伪造或修改 cookie 从而造成 cookie 欺骗,一般可以对 cookie 的值进行加密来预防欺骗。读取 cookie 的时候,对 cookie 解密即可。

    4、Cookie是保存在客户端的,用户禁用了Cookie,你的Cookie自然也就没作用啦!

     1 <?php
     2 
     3 setcookie('username','nostop',time()+3600);    //创建cookie
     4 
     5 if(isset($_COOKIE["username"])){    //使用isset()函数检测cookie变量是否已经被设置
     6 
     7     echo "您好!".$_COOKIE["username"];    //您好!nostop     读取cookie 
     8 
     9 }else{
    10 
    11     echo "请登陆";
    12 
    13 }
    14 
    15 ?>
  • 相关阅读:
    管理员必备的Linux系统监控工具
    kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
    RedHat linux配置yum本地资源
    RedHat Linux RHEL6配置本地YUM源
    c语言中的fgets函数
    sprintf()函数的用法
    spring boot整合JWT例子
    spring boot 自定义过滤器链
    (转)ArrayList和LinkedList的几种循环遍历方式及性能对比分析
    (转)Springboot 中filter 注入对象
  • 原文地址:https://www.cnblogs.com/webenh/p/5620154.html
Copyright © 2011-2022 走看看