文章标签 ‘cookie存取’

javascript读写cookie实例

2011年8月29日 没有评论

Cookie是网站存放在客户端的一小段数据。一般的,网站为了提升用户体验,在客户的客户端中保存用户的历史信息,以备用户再次访问时网站能提供 更方便,更有针对性的服务。比如,网站可以记住你的登录状态,只要登录一次下次访问就不用在登录;购物网能记住你浏览过的产品,保留你购物车中的物品。这 些都有Cookie的功劳。

cookie的存取操作不止局限于服务器段,客户端通过javascript也一样可以进行cookie的存取。利用document.cookie对象就能操作了。下面分别给出读写cookie的方法示例代码。

function getCookie(name){
    var arr = document.cookie.match(new RegExp("(^| )" 
                                   + name + "=([^;]*)(;|$)"));
    if(arr != null) return (arr[2]);
    return null;
}

document.cookie就是以key/value的形式返回所有对于当前页面有权限读取的cookie字符串,然后通过正则表达式查询参数指定cookie名的cookie值。

function setCookie (name, value, expire) {
    var expireStr = '';

    if (expire || expire > 0) {
        var exp  = new Date();
        exp.setTime(exp.getTime() + expire * 1000);

        expireStr = ';expires=' + exp.toGMTString();
    }

    document.cookie = name + '=' + value +  
                      '; path=/;' + expireStr + 
                      'domain=.youdomain.com';
}

注意setCookie中的第三个参数,是指定cookie的过期时间,单位为秒,如果不指定或者值不大于0,那么写入的cookie类型为会话cookie,即浏览器关闭后,cookie就失效,反正就是硬盘cookie,会记录在客户端的电脑上。

解决第三方cookie的存取问题

2011年8月29日 没有评论

何为第三方cookie呢,简单来说,就是用户当前浏览的页面上有通过IFRAME、IMG或script等标签嵌入另外一个域名的链接地址,该链接设置的cookie就称为第三方cookie,当前页面设置的cookie为第一方cookie。由于隐私保护的问题,现在主流的浏览器默认是不允许写入第三方cookie的,但是只要在相应的Header信息设置了P3P,第三方cookie还是能正常的写入的。

例如在php中通过下面的代码就能正确的写入一个名为thirdcookie的cookie。

header(‘P3P: CP=”CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR”‘);

header(“Set-Cookie: “thirdcookie=cookievalue;domain=.youdomian.com;path=/;expires=” . gmstrftime(“%A, %d-%b-%Y %H:%M:%S GMT”, time() + (86400 * 365 * 3)));

需要注意的是即使设置了P3P,只有通过服务器端的操作才能写入cookie,客户端方用javascript的方法也依然无法写入cookie,而且在IE6下javascript也无法读取到第三方cookie。关于javascript读写cookie的详细信息,请参阅 javascript读写cookie实例

无觅相关文章插件,快速提升流量