章 35. Cookie

PHP 透明地支援 HTTP cookie。cookie 是一種在遠端瀏覽器端儲存資料並以此來追蹤和識別會員的機制。可以用 setcookie()setrawcookie() 函數來設定 cookie。cookie 是 HTTP 標頭的一部分,因此 setcookie() 函數必須在其它訊息被輸出到瀏覽器前呼叫,這和對 header() 函數的限制類似。可以使用輸出緩衝函數來延遲腳本的輸出,直到按需要設定好了所有的 cookie 或是其它 HTTP 標頭。

若果 variables_order 中內含「C」,則任何從用戶端傳送的 cookie 都會被自動內含進 $_COOKIE 自動全局陣列。若果希望對一個 cookie 變量設定多個值,則需在 cookie 的名稱後加 [] 符號。

根據 register_globals 的設定,可以從 cookie 建立普通的 PHP 變量。但是不推薦依賴於此特性,因為出於安全原因此選項通常是關閉的。在早期的 PHP 版本中,當 track_vars 配置選項開啟時(此選項自 PHP 4.0.3 後總是開啟的),系統還會設定 $HTTP_COOKIE_VARS

關於更多細節以及有關瀏覽器問題的注意事項,參見 setcookie()setrawcookie() 函數。