博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

PHP会话技术-Cookie

Posted on 2013-05-06 15:25  Step at a time  阅读(259)  评论(0编辑  收藏  举报

Cookie是客户端技术,服务器把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再次访问服务器的WEB资源时,就会带着各自的数据去,这样,WEB资源处理的就是用户各自的数据了。

1、创建一个Cookie(在服务器端创建的)

<?php
    
    //把用户名和密码保存到客户端的cookie
    //setCookie 函数来实现 第一个参数表示cookie的key,第二个参数表示val,第三个参数是cookie的值,代表在客户端保存的时间,按秒计算
  
    setCookie("name","xiaoming",time()+3600);
    setCookie("password","123456",time()+300);
    setcookie("adress","北京",time()+300);
    setcookie("hobby","运动",time()+30);
    //echo date("y-m-d h:i:s",time());
    echo "保存成功";
?>

要点说明:

  1. 当浏览器访问该页面(test.php)的时候,服务器就会以Set-Cookie: name=xiaoming; expires=Mon, 06-May-2013 08:14:39 GMT 回送http响应,(测试浏览器IE)当浏览器获取到该信息后,就会保存该cookie的信息到本机的C:\Documents and Settings\Administrator\Cookies 目录下
  2. 如果没有设置时间 cookie不会保存到客户端,当浏览器的会话结束,cookie就会失效
  3. cookie保存的信息实际上就是字符串
  4. 客户端可以保存多个 键值对
  5. cookie也可以保存中文,默认将会对中文进行urlencode进行编码
  6. cookie可以有多个键-值对,可以给不同的键值对设置有效时间

测试:

<?php

    echo "<pre>";
    
    print_r($_COOKIE);
    echo "</pre>";
    
    //获取指定key 对应的值
    if(!empty($_COOKIE['name'])){

        $name=$_COOKIE['name'];
        echo "name=".$name;
    }else{
    
        echo "没有了";
    }
    
    //echo urldecode("%E5%8C%97%E4%BA%AC");
    
?>

 2、更新cookie

<?php

    //更新cookie
    //更新address 
    setCookie("address","shanghai",time()+300);
    echo "更新键address的值成功";
?>

3、删除cookie

<?php


    //删除cookie 中的某个key  只有把 time()-秒数 就OK

    //    setCookie("password","",time()-1);
    //    echo "删除成功";

    //删除所有cookie 浏览器就会把cookie文件也删除掉了
    foreach ($_COOKIE as $key=>$val){
        
        setcookie($key,"",time()-100);

    }

    echo "删除成功";
?>