我让它在其他浏览器上运行,但是在Firefox上(最重要的一个),它不起作用。我的代码有什么问题?或者Firefox怎么了:)
if($_COOKIE['ea1']){
die ("cookies set");
} else {
setcookie('ea1',1,time()+24*60*60);
}
try this:
if($_COOKIE['ea1']){
die ("cookies set");
} else {
setcookie('ea1',1,time()+24*60*60,'/','example.com');
}
你也可以考虑在
之前清除浏览器cookie编辑:如果你在本地主机上,你可能不得不使用
setcookie('ea1',1,time()+24*60*60,'/',false);
可以了
-
//Set_Cookie (mycookie,参观了9倍,30岁 , '/', '', '');Set_Cookie(name, value, expires, path, domain, secure) {if (!hasKey()) {返回;}
var today = new Date(); today.setTime(today.getTime()); if (expires) { expires = expires * 1000 * 60 * 60 * 24; } var expires_date = new Date(today.getTime() + (expires)); document.cookie = name + "=" + escape(value) + ((expires) ? ";expires=" + expires_date.toGMTString() : "") + ((path) ? ";path=" + path : "") + ((domain) ? ";domain=" + domain : "") + ((secure) ? ";secure" : ""); }
Get_Cookie(check_name) {Var a_all_cookies = document.cookie.split(';');Var a_temp_cookie = ";Var cookie_name = ";Var cookie_value = ";Var b_cookie_found = false;
for (i = 0; i < a_all_cookies.length; i++) { a_temp_cookie = a_all_cookies[i].split('='); cookie_name = a_temp_cookie[0].replace(/^'s+|'s+$/g, ''); if (cookie_name == check_name) { b_cookie_found = true; if (a_temp_cookie.length > 1) { cookie_value = unescape(a_temp_cookie[1].replace(/^'s+|'s+$/g, '')); } return cookie_value; break; } a_temp_cookie = null; cookie_name = ''; } if (!b_cookie_found) { return null; } }
我有时会遇到cookie和重定向的问题。确保你在设置cookie头之前设置了位置头,以获得最大的浏览器兼容性。
有同样的问题,这对我有效:
在本地主机上设置cookie,使用false
setcookie("TestCookie", $value, time()+3600, "/", false);
删除相同的cookie使用负时间
setcookie("TestCookie", '', time()-3600, "/", false);