我让它工作在其他人身上但是(Firefox是最重要的),它不起作用。我的代码有什么问题?或者Firefox有什么问题:)
if($_COOKIE['ea1']){
die ("cookies set");
} else {
setcookie('ea1',1,time()+24*60*60);
}
答案 0 :(得分:1)
假设您的意思是Firefox,我建议您阅读这篇文章"Why can't I create cookies in firefox"
此外,可能值得尝试设置更多参数,尤其是域参数。有关详细信息,请参阅the documentation。
答案 1 :(得分:1)
试试这个:
if($_COOKIE['ea1']){
die ("cookies set");
} else {
setcookie('ea1',1,time()+24*60*60,'/','example.com');
}
您可能还会考虑在
之前清除浏览器Cookie编辑:如果您使用的是localhost,则可能需要使用
setcookie('ea1',1,time()+24*60*60,'/',false);
答案 2 :(得分:1)
这将有效
// Set_Cookie('mycookie','访问了9次',30,'/','',''); function 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" : ""); }
function 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;
} }
答案 3 :(得分:1)
我有时遇到过Cookie和重定向问题。确保在设置Cookie标头之前设置位置标头,以实现最大的浏览器兼容性。
答案 4 :(得分:0)
有同样的问题,这对我有用:
在localhost上设置cookie,使用false
setcookie("TestCookie", $value, time()+3600, "/", false);
删除相同的Cookie使用否定时间
setcookie("TestCookie", '', time()-3600, "/", false);