setcookie() 関数は、HTTP Cookie をクライアントに送信します。
Cookie は、サーバーによってブラウザに送信される変数です。 Cookie は通常、サーバーがユーザーのコンピュータに埋め込む小さなテキスト ファイルです。この Cookie は、同じコンピュータがブラウザを通じてページを要求するたびに送信されます。
Cookie の名前は、同じ名前の変数に自動的に割り当てられます。たとえば、送信される Cookie の名前が「user」の場合、Cookie の値を含む $user という名前の変数が自動的に作成されます。
Cookie は、他の出力がクライアントに送信される前に割り当てる必要があります。
成功すると、関数は TRUE を返します。失敗した場合は FALSE を返します。
setcookie(名前,値,有効期限,パス,ドメイン,安全)
パラメータ | 説明する |
---|---|
名前 | 必須。クッキーの名前を指定します。 |
価値 | 必須。 Cookieの値を指定します。 |
期限切れ | オプション。 Cookieの有効期限を指定します。 time()+3600*24*30 は、Cookie の有効期限を 30 日に設定します。このパラメータが設定されていない場合、Cookie はセッション終了後 (つまり、ブラウザが閉じられたとき) に自動的に期限切れになります。 |
パス | オプション。 Cookie のサーバー パスを指定します。 パスが「/」に設定されている場合、Cookie はドメイン名全体で有効になります。パスが「/test/」に設定されている場合、Cookie は test ディレクトリとそのすべてのサブディレクトリで有効になります。デフォルトのパス値は、Cookie が存在する現在のディレクトリです。 |
ドメイン | オプション。 Cookieのドメイン名を指定します。 example.com のすべてのサブドメインで Cookie を有効にするには、Cookie のドメイン名を「.example.com」に設定する必要があります。 Cookie のドメイン名を www.example.com に設定すると、Cookie は www サブドメイン内でのみ有効になります。 |
安全な | オプション。安全な HTTPS 接続を介して Cookie を送信する必要があるかどうかを指定します。安全な HTTPS 接続を介して Cookie を送信する必要がある場合は、TRUE に設定します。デフォルトは FALSE です。 |
ヒント: 「user」という名前の Cookie の値には、$HTTP_COOKIE_VARS["user"] または $_COOKIE["user"] を介してアクセスできます。
注: Cookie を送信すると、Cookie の値は自動的に URL エンコードされます。 URL デコードは受信時に自動的に実行されます。これが必要ない場合は、代わりに setrawcookie() を使用できます。
Cookie を設定して送信します。
<?php$value = "my cookie value";// 単純なcookiesetcookie("TestCookie",$value)を送信します;?><html><body>....
<?php$value = "my cookie value";// 24 時間で期限切れになる cookie を送信setcookie("TestCookie",$value, time()+3600*24);?><html><body>... ...
Cookie 値を取得するさまざまな方法 (Cookie が設定された後):
<html><body><?php// 個々の cookie を出力しますecho $_COOKIE["TestCookie"];echo "<br />";echo $HTTP_COOKIE_VARS["TestCookie"];echo "<br />";// 出力すべてのcookieprint_r($_COOKIE);?></body></html>
上記のコードは次のように出力します。
私のクッキーの値私のクッキーの値配列 ([TestCookie] => 私のクッキーの値)
有効期限を過去の日付/時刻に設定して Cookie を削除します。
<?php// 有効期限を 1 時間前に設定しますsetcookie ("TestCookie", "", time() - 3600);?><html><body>....
Cookie の配列を作成します。
<?phpsetcookie("cookie[three]","cookiethree");setcookie("cookie[two]","cookietwo");setcookie("cookie[one]","cookieone");// Cookie を出力します (その後ページをリロードしています)if (isset($_COOKIE["cookie"])) { foreach ($_COOKIE["cookie"] as $name => $value) { echo "$name : $value <br />"; }?><html><body>....
上記のコードは次のように出力します。
3 : クッキー 3 つ : クッキー 2 つ : クッキー 1 つ