キャッシング - setcookie()関数PHPの
setcookie(PHP 3, PHP 4, PHP 5)
gbvy[W
setcookie - クッキーメッセージを送信
説明bool setcookieの(文字列名[、文字列値[、ブール安全]]]]]) [、文字列のパス[、文字列のドメイン[、有効期限がint型
setcookie()はHTTPヘッダとクッキーの残りの部分と一緒に送信される定義。。これを含め、あらゆる出力する前にこの関数を入れて呼び出す必要がありますと
の注意:PHP 4では以降ので、出力前に、この関数を呼び出すために出力キャッシュを使用することができます、価格はあなたがそれらを送信するまで、サーバーにキャッシュされているブラウザにすべての出力を配置することです。。。
。パラメータをスキップするパラメータを置き換えるために空の文字列("")を使用することができます。パラメータは整数です有効期限のため、あなたの代わりに(0)ゼロを使用することができます空の文字列で流すことができない。各パラメータについては、次の表のはsetcookie()説明されています。。
表1。 setcookie()でパラメータ名の名前Cookieの詳細。$ _COOKIE ['cookiename']で、クッキーの名前cookienameを呼び出して使用してください。
値はCookieの値。この値は、機密データを格納するためには、クライアントに格納されている。想定名は、その値を取得するには$ _COOKIE ['cookiename']でを通じて、'cookiename'だとすると。
。。Cookieの有効期限を設定する秒数を加算した時間()関数は、通常、言い換えれば、。または達成するためにmktime()を使用する。時間()60 * 60 * 24 * 30、30日後にクッキーを設定します。。
効果的なのサーバー側のパスのCookieパス。このパラメータに設定されている場合、/ fooの下に/ディレクトリにのみ'/ fooを/'、Cookieドメイン設定されている場合、そのサブディレクトリには、たとえば、/ fooの有効ですが、'/'は、その後、クッキーは、ドメイン全体で有効です/バー/。デフォルトは現在のディレクトリ内のクッキーを設定することです。。
Cookieドメインの有効なドメイン名。サブドメインが有効であるのすべてのドメイン名の下にexample.comなどのクッキーの場合、このパラメータは'に設定する必要があります。 Example.com'。。。
セキュリティで保護された場合にのみクッキーがセキュアなHTTPS接続を介して送信されるかどうかを示す。セキュリティで保護された接続でのみTRUEを、クッキーに設定すると設定されている。デフォルト値はFALSEです。
クッキーが設定されている場合、それらは他のページから、または$ _COOKIE配列をすることができます$ aの値をHTTP_COOKIE_VARSを取得する。PHP 4.1.0以降、またはそれ以降の$ _COOKIEのフォームをオートグローバルは、注意してください。PHP 3から$ HTTP_COOKIE_VARSは使用することができますので、。クッキーは、$ aの値を_REQUEST配列に保存されます。
注意:register_globalsは、PHPのオプションは、その上に設定されている場合は、Cookieの値はまだ変数にビン内にされる。。
クッキーは、その値にアクセスするために別のページでクッキーが正常に前に、その有効期限にすることができます設定されているかどうかをテストするには、このページの発効を設定しません。有効期限は、パラメータで有効期限が設定され。既存のCookieをデバッグするには、単に($ _COOKIE)を表示しますprint_r使用することができます。
。その値が空の文字列またはFALSE、および他のパラメータと前にsetcookieをコールと同じである場合、リモートクライアントによって指定されたCookieの名前が削除されます。
Cookieの値は、Cookieを削除しようとするクライアントをFALSEに設定されているので、あなたは、TRUEまたはFALSEのブール値が直接使用する必要がないときにCookieを保存するを示すために1とFALSEをTRUEに表すために0を使用する必要があります
Cookieの名前は、配列、クッキーの配列として設定することができ、各要素の値は、個別にユーザーのシステムに格納されます。クッキーを設定するには複数の名前と値()関数を爆発させる考え。これはセキュリティ上の脆弱性を引き起こす可能性があるためではなく、この目的のためにserialize()のすることをお勧めします。
。。
例1:ここではクッキーを送信する方法の例をいくつか示します。 setcookie()は=どこかから何かを'たとえば、$の値を送信します。
setcookie("TestCookie", $value);
setcookie("TestCookie", $value,time()+3600); /* expire in 1 hour */
setcookie("TestCookie", $value,time()+3600, "/~rasmus/", ".utoronto.ca", 1);
Cookieの値は、一部が自動的にUrlEncodeをエンコードされているときに送信されており、自動的にデコードされ、受信が割り当てられCookie変数の値を自分と同じ名前に注意してください。あなたは、したくない場合にはPHP 5の使用では、代わりに)(ちょっとしたを使用することができます。
/ /出力、個別のCookie
echo $_COOKIE["TestCookie"];
echo $HTTP_COOKIE_VARS["TestCookie"];
/ /別の方法は、Cookieのすべての出力をデバッグするには
print_r($_COOKIE);
?>
Cookieを削除するには、過去に有効期限は、ブラウザの削除機構を起動していることを確認する必要があります。例2:次の例では、ちょうどクッキーをセットを削除する方法を示しています。 setcookie()は前に1時間に設定されている/ /有効期限の例を削除
setcookie("TestCookie", "", time() - 3600);
setcookie("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1);
例3:また、シンボルのクッキーの配列を設定するにはクッキー名で配列を使用することができます、あなたはすべての種の値は配列に配置されていない場合にスクリプトでcookieを抽出し、配列の要素として、複数のクッキーを設定することができます。配列の例でsetcookie()
setcookie("cookie[three]", "cookiethree");
setcookie("cookie[two]", "cookietwo");
setcookie("cookie[one]", "cookieone");
if (isset($_COOKIE['cookie'])) {
foreach ($_COOKIE['cookie'] as $name => $value) {
echo "$name : $value <br />\n";
}
}
?>
上の例の出力:3:cookiethreetwo:cookietwoone:cookieone