cookie是一种会话技术,通常用来保存会话中需要长时间存储的数据。比如记录登录信息(最好MD5加密存储),未登录状态购物车信息存储。
如上图可见cookie的产生和内容是由服务器发出的指令,而cookie的保存和提交(请求时携带cookie提交到服务器)是由浏览器内部实现的。
在php中用setcookie这个函数来告诉浏览器去产生和保存cookie。
/**
*
* $name string 键名
* $value string 键值
* $expire int 有效期 默认是0 在会话结束时失效 , time()+3600 是一小时内有效
* $path string 默认当前目录,cookie对当前目录及其子目录有效,设置'/'对整站有效
* $domain string有效域,默认是当前域名, 可设置为 ".baidu.com",那么news.baidu.com的子域名也有效
* $secure boolean 是否仅对https时携带cookie 默认 false
* $httponly boolean 是否仅在http下能使用, 默认false,那么JS也可以读取,如为true,仅http下能使用cookie
*/
setcookie($name, $value, $expire, $path, $domain, $secure, $httponly)
setcookie的七个形参,表明了cookie有7个属性。其中$name,
$value是必选参数,其他都为可选,$value的值类型只能为字符串类型。
如果要保存非字符串类型的值可以做如下处理:
//保存非string类型的值
setcookie('KEY',serialize($val));
//读取
unserialize($_COOKIE['KEY']);
删除一个cookie就是让有效期过期
setcookie('KEY','value',time()-1);
//或者如下
setcookie('KEY','');