------------------------------------------------ ------------------------
Cookie は、ユーザーを追跡および識別するためにリモート ブラウザーにデータを保存するメカニズムです。
PHP は http プロトコルのヘッダー情報で Cookie を送信するため、他の情報がブラウザーに出力される前に setcookie() 関数を呼び出す必要があります。これは header() 関数の制限と同様です。
1.1 Cookie を設定する:
setcookie() または setrawcookie() 関数を使用して Cookie を設定できます。 http ヘッダーをクライアントに直接送信することによっても設定できます。
1.1.1 setcookie() 関数を使用して Cookie を設定します。
bool setcookie ( string name [, string value [, intexpired [, string path [, string domain [, bool secure [, bool httponly]]]]])
name: Cookie 変数名
value: Cookie 変数値
Expired: 有効期間の終了、
パス: 有効なディレクトリ、
ドメイン: 有効なドメイン名、トップレベルドメイン固有
secure : 値が 1 の場合、Cookie は https 接続でのみ有効です。デフォルト値 0 の場合、http と https の両方が使用可能です。
例:
$value = '何かどこか';
setcookie ("TestCookie", $value); /* 簡単な Cookie 設定*/
setcookie("TestCookie", $value, time()+3600); /* 有効期間は 1 時間です*/
setcookie ("TestCookie", $value , time()+3600, "/~rasmus/", ".example.com", 1); /* 有効なディレクトリ/~rasmus、有効なドメイン名 example.com とそのすべてのサブドメイン* /
?>
複数の Cookie 変数を設定します: setcookie('var[a]','value'); この方法では、変数を表すために配列を使用します。この方法では、$ を使用できます。 _COOKIE['var']['a'] を使用して COOKIE 変数を読み取ります。
header("Set-Cookie: name=$value[;path=$path] [;domain=xxx.com[;... ]]");次のパラメーターは、上記の setcookie 関数のパラメーターと同じです。
例:
$value = 'something from somewhere';
1.2 Cookie の読み取り:
PHP 組み込みのスーパー グローバル変数 $_COOKIE を直接使用して、ブラウザー側で Cookie を読み取ることができます。 Cookie「TestCookie」が設定されているので、それを読み取ってみましょう:
print $_COOKIE[' TestCookie'];
1.3 Cookie を削除します
有効期間を現在時刻よりも短く設定するだけです例:
setcookie("name","", time()-1);
1.4 解決済みのよくある質問:
1) があります。 setcookie() を使用すると、エラー メッセージが表示されます。または、setcookie() を呼び出す前に出力またはスペースがあることが原因である可能性があります。ドキュメントが他の文字セットから変換されている場合、ドキュメントには BOM 署名が含まれている可能性があります。解決策は、ob_start( ) 関数を使用してこの状況を回避することです。
3) 使用する場合、ユーザーがCookieをサポートしているかどうかをテストする必要があります