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