Looking for php Answers? Try Ask4KnowledgeBase
Looking for php Keywords? Try Ask4Keywords

PHPクッキー


前書き

HTTP Cookieは、ユーザーがブラウズしている間に、Webサイトから送信され、ユーザーのWebブラウザーによってユーザーのコンピューターに保存される小さなデータです。

構文

  • bool setcookie( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]] )

パラメーター

パラメータ詳細
クッキーの名前。これは$_COOKIEスーパーグローバルから値を取得するために使用できるキーです。 唯一の必須パラメータです
Cookieに格納する値。このデータにはブラウザからアクセスできるので、ここでは何も保存しないでください。
失効するクッキーが期限切れになる時期を表すUnixタイムスタンプ。ゼロに設定すると、セッションの終了時にクッキーが期限切れになります。現在のUnixタイムスタンプよりも小さい数値に設定すると、クッキーは直ちに失効します。
パスクッキーの範囲。 /設定すると、クッキーはドメイン全体で利用可能になります。 /some-path/設定すると、そのパスとそのパスの子孫でのみCookieが使用可能になります。デフォルトは、クッキーが設定されているファイルの現在のパスです。
ドメイン Cookieが使用可能なドメインまたはサブドメイン。裸のドメインstackoverflow.com設定すると、そのドメインとすべてのサブドメインでCookieが使用可能になります。サブドメインmeta.stackoverflow.com設定すると、そのサブドメインとすべてのサブサブドメインでのみCookieが使用可能になります。
安全な TRUE設定すると、クッキーは、クライアントとサーバーの間にセキュアなHTTPS接続が存在する場合にのみ設定されます。
httponly CookieをHTTP / Sプロトコルでのみ使用できるようにし、JavaScriptなどのクライアント側のスクリプト言語では使用できないように指定します。 PHP 5.2以降でのみ利用可能です。

備考

setcookie関数を呼び出すだけでは、与えられたデータを$_COOKIEスーパーグローバル配列に入れるだけではないことに注意してsetcookie

たとえば、次のようなことはありません。

setcookie("user", "Tom", time() + 86400, "/");
var_dump(isset($_COOKIE['user'])); // yields false or the previously set value

値はまだありません。次のページが読み込まれるまではありません。関数setcookie次のhttp接続でこのクッキーを設定するようにクライアント(ブラウザ)に指示します 。次に、ヘッダーがブラウザーに送信されると、ヘッダーにはこのCookieヘッダーが含まれます。ブラウザはクッキーがまだ期限切れでないかどうかチェックし、そうでなければhttpリクエストでクッキーをサーバに送信します。これはPHPがそれを受け取り、その内容を$_COOKIE配列に入れます。

クッキー 関連する例