domain决定了cookie的生效域名
php通过setcookie来设置cookie,具体参数如下
setcookie(
string $name,
string $value = "",
int $expires = 0,
string $path = "",
string $domain = "",
bool $secure = false,
bool $httponly = false
): bool
一般情况下,很少去设置该值,但是有些时候还会用到。
前提条件
设置cookie的域名:http://www.test.com
不设置
setcookie('test','this is test')
如果什么都不设置的,那么生效的域名为www.test.com。
设置为同域名
setcookie('test','this is test',0,'/','www.test.com')
有些人可能会好奇,这么做不是多此一举吗?生效域名不还是www.test.com吗?其实不是,仔细观察会发现,domain多了一个点。其值为
.www.test.com
此时的生效域名已经不但是www.test.com,还包括了其三级域名,例如a.www.test.com,四级域名也可以a.b.test.com(再深未测试,理论上基于www.test.com的子域名应该都可以)。
设置为根域名
setcookie('test','this is test',0,'/','test.com')
此时cookie对整个域名有效(包括所有子域名)。
注意事项
domain和path共同决定了一个cookie的作用域,相同的domain和path才是同一个cookie,设置和使用的时候一定要注意。