PHP は HTTP Cookie を透過的にサポートします。 Cookie は、ユーザーを追跡および識別するためにリモート ブラウザーにデータを保存するメカニズムです。 Cookie は、setcookie() 関数または setrawcookie() 関数を使用して設定できます。 Cookie は HTTP ヘッダーの一部であるため、header() 関数の制限と同様に、他の情報がブラウザに出力される前に setcookie() 関数を呼び出す必要があります。出力バッファリング関数を使用すると、すべての Cookie またはその他の HTTP ヘッダーが必要に応じて設定されるまで、スクリプトの出力を遅らせることができます。
例 #1 setcookie() の使用例
<?php $value = 'something from somewhere'; //设置Cookie setcookie("TestCookie", $value); setcookie("TestCookie", $value, time()+3600); /* expire in 1 hour */ setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1); //删除Cookie setcookie ("TestCookie", "", time() - 3600); setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", "example.com", 1); ?>
variables_order に「C」が含まれている場合、クライアントから送信された Cookie は自動的に $_COOKIE 自動グローバル配列に組み込まれます。 Cookie 変数に複数の値を設定する場合は、Cookie 名の後に [] 記号を追加する必要があります。
<?php // set the cookies setcookie("cookie[three]", "cookiethree"); setcookie("cookie[two]", "cookietwo"); setcookie("cookie[one]", "cookieone"); // after the page reloads, print them out if (isset($_COOKIE['cookie'])) { foreach ($_COOKIE['cookie'] as $name => $value) { $name = htmlspecialchars($name); $value = htmlspecialchars($value); echo "$name : $value <br />\n"; } } ?>
register_globals の設定により、Cookie から通常の PHP 変数を作成できます。ただし、このオプションは通常、セキュリティ上の理由からオフになっているため、この機能に依存することはお勧めできません。 PHP の以前のバージョンでは、track_vars 構成オプションがオンになっていると (このオプションは PHP 4.0.3 以降常にオンになっています)、$HTTP_COOKIE_VARS も設定されていました。
りー