以 Dreamweaver 開發 PHP 講義 CH8 Cookie

撰寫人:致理電腦 林新德

◎ Cookie是網站透過瀏覽器將資料存放在硬碟裡的機制。基於安全性,Cookie有幾個
特性:
1. 以網域為單位:例如pchome.com.tw不可讀取yahoo.com.tw所設定的Cookie。
2. 大小受限:不同的瀏覽器有不同的大小限制,一般為4096 bytes。
3. 客戶端可能可以看得到:IE的Cookie會放在「C:\Documents and Settings\使用
者\Local Settings\Temporary Internet Files」。
4. 客戶端可以設定:瀏覽器可以設定是否使用Cookie,一般設定為使用,筆者也建
議使用。
5. 過期:Cookie是有期限的,過期就會失效。
6. 自動傳給主機:瀏覽器每次做request時,都會將有效的Cookie放在HTTP Header
裡,傳給server。
◎ Cookie的內容應該要簡短,而且不應存放敏感性資料(例如:密碼)。Cookie是好
的,可以幫助網站做客製化的設定,大部份的Seesion機制也是建立在Cookie之上。
◎ PHP設定Cookie使用setcookie()函式:

通常我們只會用到前三個參數:「Cookie名稱」、「Cookie值」和「期限」。「期限」
用的是Unix系統上的時間戳記(Unix timestamp),單位為秒,用time()函式可以
取得當下的時間戳記。若不使用「期限」參數,瀏覽器的所有視窗關閉時為過期時
間。
◎ PHP讀取Cookie 使用 $_COOKIE 預設的陣列變數。

◎ 第一次用setcookie()設值時,用 $_COOKIE是讀不到的,因為server是要告訴
client設定Cookie,並未從client端得到Cookie。
◎ Cookie的設定(使用setcookie函式)是放在HTTP的Header(表頭)裡,應該在
HTML內容還沒有出現時設定。若PHP的設定「output_buffering」為「 On」時,表
示HTTP內容有做緩衝,或許不需要放在最前面。不過避免「output_buffering」為「
Off」,或者緩衝區已滿的情況下,setcookie函式應該在HTML內容還沒有出現時設
定。

本篇發表於 PHP 專區。將永久鏈結加入書籤。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

*

你可以使用這些 HTML 標籤與屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>