我设置cookies成功了,再次刷新页面后,设置的cookies没有了
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了我设置cookies成功了,再次刷新页面后,设置的cookies没有了,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3310字,纯文字阅读大概需要5分钟。
内容图文
![我设置cookies成功了,再次刷新页面后,设置的cookies没有了](/upload/InfoBanner/zyjiaocheng/236/61b5538432fa43ea95f668018a0afe87.jpg)
header("Content-type: text/html; charset=utf-8");
if (isset($_COOKIE['test']))
{
echo '获取到的cookies是:'.$_COOKIE['test'];
}
elseif (setcookie('test', 'okh', time() + 3600, '/', '.us.com'))
{
echo '设置cookies:test';
}
else
{
echo '什么都没有';
}
用us.com访问,上面这段代码在chrome下一直设置成功,但是却一直都没记录
找了半天原因,一朋友从手册上告诉我:
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.
于是我做了这么一个调整:
- 用www.us.com进行访问
-
修改之前的代码为
setcookie('test', 'okh', time() + 3600, '/', 'www.us.com')
这下正常设置,也正常记录了。
但是存在2个问题:
- 请问如何设置不带WWW的域名的cookies呢?比如:us.com
- 设置www.us.com虽然能在www.us.com下使用,但是却不能在us.com下使用,如何设置cookies使其通用呢?
PS:我知道去掉domian这个参数就可以成功设置了,不过我的需求是设置不同域下的cookies,不仅仅是一个域名下,所以我还是希望保留这个参数的,最好是能设置诸如:.us.com
回复内容:
代码如下:
header("Content-type: text/html; charset=utf-8");
if (isset($_COOKIE['test']))
{
echo '获取到的cookies是:'.$_COOKIE['test'];
}
elseif (setcookie('test', 'okh', time() + 3600, '/', '.us.com'))
{
echo '设置cookies:test';
}
else
{
echo '什么都没有';
}
用us.com访问,上面这段代码在chrome下一直设置成功,但是却一直都没记录
找了半天原因,一朋友从手册上告诉我:
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.
于是我做了这么一个调整:
- 用www.us.com进行访问
-
修改之前的代码为
setcookie('test', 'okh', time() + 3600, '/', 'www.us.com')
这下正常设置,也正常记录了。
但是存在2个问题:
- 请问如何设置不带WWW的域名的cookies呢?比如:us.com
- 设置www.us.com虽然能在www.us.com下使用,但是却不能在us.com下使用,如何设置cookies使其通用呢?
PS:我知道去掉domian这个参数就可以成功设置了,不过我的需求是设置不同域下的cookies,不仅仅是一个域名下,所以我还是希望保留这个参数的,最好是能设置诸如:.us.com
这个域名特殊。火狐不认为 www.us.com
是 us.com
的二级域名:
var eTLDService = Components.classes["@mozilla.org/network/effective-tld-service;1"]
.getService(Components.interfaces.nsIEffectiveTLDService);
eTLDService.getBaseDomain(gBrowser.selectedTab.linkedBrowser.currentURI);
/*
www.us.com
*/
us.com
在 effective_tld_names.dat 文件中列出来了:
// CentralNic : http://www.centralnic.com/names/domains
// Requested by registry 2012-09-27
ae.org
ar.com
br.com
cn.com
com.de
de.com
eu.com
gb.com
gb.net
gr.com
hu.com
hu.net
jp.net
jpn.com
kr.com
no.com
qc.com
ru.com
sa.com
se.com
se.net
uk.com
uk.net
us.com
us.org
uy.com
za.com
如果是在当前域名下设置 cookie
,不需要把 domain
写出来,直接这样设置:
setcookie('test', 'okh', time() + 3600)
依云大大是对的,是因为域名的特殊性,当你改为一个一般的域名:abc.com
是可以的。
setcookie('test', 'okh', time() + 3600, '/', '.abc.com')
本地的不正常的,很正常
内容总结
以上是互联网集市为您收集整理的我设置cookies成功了,再次刷新页面后,设置的cookies没有了全部内容,希望文章能够帮你解决我设置cookies成功了,再次刷新页面后,设置的cookies没有了所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。