PHP setrawcookie()関数
完全な PHP HTTP リファレンスマニュアル
定義と用法
setrawcookie() 関数は cookie の値を URL エンコードせずに、HTTP cookie を送信します。
cookie はサーバーからブラウザに送信される変数です。cookie は通常、サーバーがユーザーのコンピュータに埋め込む小さなテキストファイルです。同じコンピュータがブラウザを介してページを要求するたびに、この cookie が送信されます。
cookie の名前は、同じ名前の変数として自動的に指定されます。たとえば、送信された cookie の名前が "user" の場合、$user という名前の変数が自動的に作成され、cookie の値が含まれます。
cookie への値の設定は、他の出力がクライアントに送信される前に行う必要があります。
成功した場合、この関数は TRUE を返します。失敗した場合は FALSE を返します。
構文
| パラメータ | 説明 |
|---|---|
| name | 必須。cookie の名前を指定します。 |
| value | 必須。cookie の値を指定します。 |
| expire | 省略可能。cookie の有効期限を指定します。 time()+3600*24*30 は、cookie の有効期限を 30 日に設定します。このパラメータが設定されていない場合、cookie はセッションの終了時(つまりブラウザが閉じられたとき)に自動的に無効になります。 |
| path | 省略可能。cookie のサーバーパスを指定します。 パスが "/" に設定されている場合、cookie はドメイン全体で有効です。パスが "/test/" に設定されている場合、cookie は test ディレクトリおよびそのすべてのサブディレクトリで有効です。デフォルトのパス値は、cookie が配置されている現在のディレクトリです。 |
| domain | 省略可能。cookie のドメインを指定します。 cookie を example.com のすべてのサブドメインで有効にするには、cookie のドメインを ".example.com" に設定する必要があります。cookie のドメインを www.example.com に設定すると、cookie は www サブドメインでのみ有効になります。 |
| secure | 省略可能。cookie を安全な HTTPS 接続で転送する必要があるかどうかを指定します。cookie を安全な HTTPS 接続で転送する必要がある場合は、TRUE に設定します。デフォルトは FALSE です。 |
ヒントと注釈
ヒント:$HTTP_COOKIE_VARS["user"] または $_COOKIE["user"] を使用して、名前が "user" の cookie の値にアクセスできます。
注意:setrawcookie() 関数は setcookie() 関数とほぼ完全に同じですが、クライアントに送信する際に cookie の値を自動的に URL エンコードしない点が異なります。
例 1
cookie を設定して送信する:
$value = "my cookie value";
// send a simple cookie
setrawcookie("TestCookie",$value);
?>
<html>
<body>
...
...
$value = "my cookie value";
// send a cookie that expires in 24 hours
setrawcookie("TestCookie",$value, time()+3600*24);
?>
<html>
<body>
...
...
例 2
cookie の値を取得するさまざまな方法(cookie を設定した後):
<body>
<?php
// Print individual cookies
echo $_COOKIE["TestCookie"];
echo "<br />";
echo $HTTP_COOKIE_VARS["TestCookie"];
echo "<br />";
// Print all cookies
print_r($_COOKIE);
?>
</body>
</html>
上記のコードは次のように出力します:
my cookie value
Array ([TestCookie] => my cookie value)
例 3
有効期限を過去の日付/時刻に設定することで、cookie を削除します:
// Set the expiration date to one hour ago
setrawcookie ("TestCookie", "", time() - 3600);
?>
<html>
<body>
...
...
例 4
配列 cookie を作成する:
setrawcookie("cookie[three]","cookiethree");
setrawcookie("cookie[two]","cookietwo");
setrawcookie("cookie[one]","cookieone");
// print cookies (after reloading page)
if (isset($_COOKIE["cookie"]))
{
foreach ($_COOKIE["cookie"] as $name => $value)
{
echo "$name : $value <br />";
}
}
?>
<html>
<body>
...
...
上記のコードは次のように出力します:
two : cookietwo
one : cookieone
完全な PHP HTTP リファレンスマニュアル その他の拡張