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.

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

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

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

JavaScript 設定 Cookie 完成, PHP 讀取

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

  1. <?php
  2. echo $_COOKIE['name'];
  3. ?>

JavaScript 列出所有 Cookie

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

  1. <script>
  2. function listCookies() {
  3. var theCookies = document.cookie.split(';');
  4. var aString = '';
  5. for (var i = 1 ; i <= theCookies.length; i++) {
  6. aString += i + ' ' + theCookies[i-1] + "\n";
  7. }
  8. return aString;
  9. }
  10. </script>

相關網頁

作者: Tsung

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

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

發表迴響

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