第 35章クッキー(Cookies)

PHP は、HTTP クッキー(Cookie)を完全にサポートします。 クッキーは、リモートブラウザに文字列データを保存したり、 再訪するユーザを特定したりする機構です。 setcookie()setrawcookie() を使用してクッキーをセットすることができます。 クッキーは HTTP ヘッダの一部なので、 setcookie() はブラウザに何らかの出力を行う前にコールする必要があります。 この制約は、header() に課されているものと同じです。 また、 出力バッファ関数を使用して、 設定するクッキーや送信するヘッダの内容が決まるまで スクリプトからの出力を遅らせることが出来ます。

もし variables_order が "C" を含んでいる場合、クライアントから送られた全てのクッキーは 自動的に $_COOKIE という(常にグローバルな)配列に格納されます。 多数の値を一つのクッキーに割り付けたい場合は、[] をクッキー名に加えてください。

register_globals の設定に よっては、クッキーから通常の PHP 変数を作成することも可能です。 しかし、この設定に依存することは推奨されません。なぜなら、セキュリティの 観点からこの機能はオフにされていることが多いからです。 それ以前のバージョンでも、track_vars がセットされていれば $HTTP_COOKIE_VARS にクッキーの内容が格納されます。 (この設定は PHP 4.0.3 以降は常にオンになっています)

ちょっとした注意やブラウザのバグといった詳細に関しては、 setcookie()setrawcookie() を参照してください。