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

时间:2011-12-04 22:27:46

标签: php firefox cookies

我让它工作在其他人身上但是(Firefox是最重要的),它不起作用。我的代码有什么问题?或者Firefox有什么问题:)

if($_COOKIE['ea1']){
die ("cookies set");
} else {
setcookie('ea1',1,time()+24*60*60);
}    

5 个答案:

答案 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)

这将有效

  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);