文章標簽 ‘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實例

無覓相關文章插件,快速提升流量

30选5怎么中奖