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>
用這個方法 alert(document.cookie);
彈出的提示居然是 PHPSESSID=xxxxxxx
而不是自己設的Javascript cookie, 蠻奇怪的~
自己設定的要 reload 後就會看到了