域名和cookie问题_php技巧_脚本之家

域名和cookie
偶然想到一个问题:www.g.cn能把cookie设置为.g.cn,那么www.com.cn能设置把cookie设置为.com.cn吗?
试验结果:不能。因为浏览器知道www.com.cn的后缀是.com.cn而不是.cn,所以禁止设置cookie。
因为浏览器内置了域名后缀列表。todo:如果以后出现新的后缀,而老浏览器没法更新列表,岂不是会允许设置cookie?
extension后缀一级域名二级域名www.g.cn.cng.cn*.g.cnwww.com.cn.com.cnwww.com.cn*.www.com.cnwww.google.com.cn.com.cngoogle.com.cn*.google.com.cnwww.example.com能读取到.example.com的cookie吗?
能。 www.example.com能读取到example.com的cookie吗?
不能。todo:把www.example.com和example.com做SSO,即可防止cookie带到static.example.com。
example.com能读取到www.example.com的cookie吗? 答:不能。 setcookie +
1234, ‘/’, ‘example.com’); 设置的cookie是 .example.com 还是
example.com的? 答:是.example.com的。
如果想设置example.com的cookie,需要使用setcookie(‘default’, ‘default’,
time;。 cookie的设置和读取范围:
HTTP请求域名一级域名cookie可设置的范围cookie不可设置cookie不可读取example.comexample.comexample.com,.example.comwww.example.comwww.example.comwww.example.comexample.comwww.example.com,.www.example.com,.example.comexample.comexample.comg.com.cng.com.cng.com.cn,.g.com.cn.com.cnwww.com.cnwww.com.cnwww.com.cn,.www.com.cn.com.cn设置cookie代码:
复制代码 代码如下:

今天本地调试,有个cookies死活都写不进去,环境如下:

setcookie() 定义一个和其余的 HTTP 标头一起发送的
cookie。和其它标头一样,cookie
必须在脚本的任何其它输出之前发送。这需要将本函数的调用放到任何输出之前,包括

读取cookie代码: 复制代码 代码如下:

域名:111cn.net

标签以及任何空格。如果在调用 setcookie()
之前有任何输出,本函数将失败并返回 FALSE。如果 setcookie()
函数成功运行,将返回 TRUE。这并不说明用户是否接受了
cookie。函数定义:bool setcookie ( string name [, string value [,
int expire [, string path [, string domain [, bool secure]]]]]
)setcookie() 参数详解参数
说明举例namecookie的名字使用$_COOKIE[‘cookiename’]调用名为 cookiename
的 cookie。valuecookie的值,存放在客户端,不要存放敏感数据假定name是
‘cookiename’,可以通过$_COOKIE[‘cookiename’]取得其值。expire

结果截图:

浏览器:chrome34

Cookie 过期的时间。这是个 Unix 时间戳,即从 Unix 纪元开始的秒数。

代码:

换而言之,通常用time()函数再加上秒数来设定 cookie 的失效期。

 代码如下

或者用mktime()来实现。

header(“Content-type: text/html; charset=utf-8”);
if (isset($_COOKIE[‘test’]))
{
    echo ‘获取到的cookies是:’.$_COOKIE[‘test’];
}
elseif (setcookie(‘test’, ‘okh’, time() + 3600, ‘/’, ‘.111cn.net’))
{
    echo ‘设置cookies:test’;
}
else
{
    echo ‘什么都没有’;
}

time()+60*60*24*30将设定 cookie 30 天后失效。

用111cn.net访问,上面这段代码在chrome下一直设置成功,但是却一直都没记录。找了半天原因,一朋友从手册上告诉我:

如果未设定,cookie 将会在会话结束后失效。

The domain that the cookie is available to. Setting the domain to
‘www.example.com’ will make the cookie available in the www subdomain
and higher subdomains. Cookies available to a lower domain, such as
‘example.com’ will be available to higher subdomains, such as
‘www.example.com’. Older browsers still implementing the deprecated »
RFC 2109 may require a leading . to match all subdomains.

pathCookie 在服务器端的有效路径。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website