【PHP】「$_COOKIE」 — HTTP クッキー

【PHP】
「$_COOKIE」 — HTTP クッキー




「$_COOKIE」とは

現在のスクリプトに HTTP クッキーから渡された変数の連想配列。

クッキーは、サーバーからブラウザに送信され、ユーザのパソコンに記録させることができる情報。
ユーザーごとに固有の情報を保つため、ユーザーの識別・設定を保存しておくことにも使われる。

クッキーには、それぞれ有効期限を設定する事ができ、有効期限を過ぎたクッキーは自動的に消滅する。
クッキーを送信しているため、クッキー送信スクリプト部分は、<DOCTYPE~~>や<html>などの記述の前に記述しなければ利用できない。

$HTTP_COOKIE_VARSは、同じ情報を持っている。
$HTTP_COOKIE_VARSは、スーパーグローバルではない。
$HTTP_COOKIE_VARSと$_COOKIE は違う変数として、PHP は別のものとして扱う。



「$_COOKIE」の操作方法

クッキーの送信と削除

「setcookie()」関数

クッキーの参照

$_COOKIE['クッキー名']
「register_globals」値によって$_COOKIE['クッキー名']ではなく"$クッキー名"としても扱える場合もある。



「setcookie()」関数の書式

bool setcookie( string name [, string value [, int expire [, string path [, string domain [, bool secure ]]]]] )

第1引数クッキーの名前
第2引数クッキーの値を
第3引数有効期限(タイムスタンプ)を指定
第4引数有効にするディレクトリの指定
第5引数有効にするドメインの指定
第6引数HTTPSでのみ有効にする指定


使用例

setcookie()の基本的な使用方法 setcookie('クッキー名', 'クッキー値');
有効期限なしのクッキー setcookie('name', 'そふぃ');
有効期限付きのクッキー $expire = time() + 60 * 30 // 30分有効
setcookie('クッキー名', 'クッキー値', $expire);
指定クッキーの表示 print $_COOKIE['name'];
クッキー削除サンプル:クッキー名のみ指定 setcookie('クッキー名');
クッキー削除サンプル:有効期限を過去に指定 setcookie('クッキー名', '', time() - 60); // 1分前
ドメイン配下全てで有効 setcookie("name", "value", 0, "./");
指定ディレクトリ内で有効 setcookie("name", "value", 0, "/ディレクトリ名");
全てのサブドメインで有効 setcookie("name", "value", 0, "", ".sample.com");
特定のサブドメインで有効 setcookie("name", "value", 0, "", "www.sample.com");
HTTPS通信の場合のみ有効 setcookie("name", "value", 0, "", "", 1);