JavaScript 設定 Cookie 寫法

JavaScript 要設定 Cookie 讓 PHP 讀取操作(安全性暫時先不考慮), 就全部明碼方式, 要怎麼寫?

JavaScript 設定 Cookie 寫法

JavaScript 設定、刪除 Cookie 最簡易的寫法如下:

  • 設定 Cookie
    • document.cookie = "name=test";
  • 刪除 Cookie
    • document.cookie = "name=; expire=Thu, 18 Dec 2013 12:00:00 GMT;"; // 後面的時間只要比現在時間還前面即可.

設定 Cookie 完整寫法

  • document.cookie="username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 GMT; domain=.example.com; path=/";
  • document.cookie="username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 GMT; path=/"; // 不寫 domain 簡短寫法

將 Cookie 設定 代入 JavaScript 範例程式

設定 1天過期, cookie name: name, value: test.

<script>
expire_days = 1; // 過期日期(天)
var d = new Date();
d.setTime(d.getTime() + (expire_days * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toGMTString();
document.cookie = "name=test" + "; " + expires + '; domain=blog.longwin.com.tw; path=/';
// alert(document.cookie)
</script>

刪除 Cookie, 將 cookie name 的 value 清空, 並將過期時間設定為現在時間 - 1 即可.

<script>
var d = new Date();
d.setTime(d.getTime() -1);
var expires = "expires=" + d.toGMTString();
document.cookie = "name=; expires=" + expires + '; domain=blog.longwin.com.tw; path=/';
// alert(document.cookie)
</script>

JavaScript 設定 Cookie 完成, PHP 讀取

JavaScript 設定完成後, PHP 要讀取無法立刻讀取到(因為瀏覽器剛設定完, 要下一次 Load 才會送給 PHP)

<?php
echo $_COOKIE['name'];
?>

JavaScript 列出所有 Cookie

下述取自: How can I list all cookies for the current page with Javascript?

<script>
function listCookies() {
    var theCookies = document.cookie.split(';');
    var aString = '';
    for (var i = 1 ; i <= theCookies.length; i++) {
        aString += i + ' ' + theCookies[i-1] + "\n";
    }
    return aString;
}
</script>

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

在〈JavaScript 設定 Cookie 寫法〉中有 3 則留言

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料