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>