Setcookie适用于其他浏览器,但不适用Firefox


Setcookie works in other browsers but not in Firefox

我让它在其他浏览器上运行,但是在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);

可以了

  1. //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);