1、cookie,w3cschool解释:cookie是由服务器发送到浏览器的变量。cookie通常是服务器嵌入到用户计算机中的小文本文件,每当计算机通过浏览器请求这个服务器的页面时,就会发送这个cookie。
2、setcookie用法:
setcookie(name,value,expire,path,domain,secure)
参数 | 描述 |
---|---|
name | 必需。规定 cookie 的名称。 |
value | 必需。规定 cookie 的值。需为字符串。 |
expire | 可选。规定 cookie 的有效期。 |
path | 可选。规定 cookie 的服务器路径。 |
domain | 可选。规定 cookie 的域名。 |
secure | 可选。规定是否通过安全的 HTTPS 连接来传输 cookie。 |
注释:可以通过 $HTTP_COOKIE_VARS["user"] 或 $_COOKIE["user"] 来访问名为 "user" 的 cookie 的值。
注释:在发送 cookie 时,cookie 的值会自动进行 URL 编码。接收时会进行 URL 解码。如果你不需要这样,可以使用 setrawcookie() 代替。
//添加或更新cookie
setcookie(
"name"
,
"zxf"
,time()+3600);
//删除cookie,expire须为过去时间才能触发浏览器清除cookie机制
setcookie(
"name"
,
""
,time()-1);
//删除所有
foreach
(
$_COOKIE
as
$key
=>
$value
) {
setcookie(
$key
,
""
,time()-1);
}
3、cookie细节注意事项:
<1>、expire 如果不设置有效期,则默认cookie为会话级别,即cookie保存在浏览器的内存中,浏览器的缓存中并无cookie文件存在。
<2>、path 有效路径:a、如果不设置cookie 的服务器路径,则默认为当前脚本文件路径,并且在当前路径和后代路径有效。
b、设置为 " / " ,则表示全站有效
· c、路径指的是url网站路径
<3>、domain cookie有效域:当某顶级域名如(www.blog.com)下有两个二级域名 php.blog.com和java.blog.com,setcookie时 domain 参数设置为:
setcookie( 'name', '张三', time() + 3600 , ' / ' , ' .blog.com' ) , 则我们访问 php.blog.com和java.blog.com时也可以访问该cookie
<4>、secure setcookie( 'name', '张三', time() + 3600 , ' ' , ' ' , true) ,则该cookie必须通过https协议进行传输。
<5>、httponly 默认情况下,cookie是可以被其他脚本语句读取,比如js,如果不希望js来读取,则可以设置为 setcookie( 'name', '张三', time() + 3600 , ' ' , ' ' , ' ' , true ) , 则 document.cookie 将不能读取到该cookie。