PHP setrawcookie()関数


PHP HTTP 参考手册完全な PHP HTTP リファレンスマニュアル

定義と用法

setrawcookie() 関数は cookie の値を URL エンコードせずに、HTTP cookie を送信します。

cookie はサーバーからブラウザに送信される変数です。cookie は通常、サーバーがユーザーのコンピュータに埋め込む小さなテキストファイルです。同じコンピュータがブラウザを介してページを要求するたびに、この cookie が送信されます。

cookie の名前は、同じ名前の変数として自動的に指定されます。たとえば、送信された cookie の名前が "user" の場合、$user という名前の変数が自動的に作成され、cookie の値が含まれます。

cookie への値の設定は、他の出力がクライアントに送信される前に行う必要があります。

成功した場合、この関数は TRUE を返します。失敗した場合は FALSE を返します。

構文

setrawcookie(name,value,expire,path,domain,secure)

パラメータ 説明
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 を設定して送信する:

<?php
$value = "my cookie value";

// send a simple cookie
setrawcookie("TestCookie",$value);
?>

<html>
<body>

...
...

<?php
$value = "my cookie value";

// send a cookie that expires in 24 hours
setrawcookie("TestCookie",$value, time()+3600*24);
?>

<html>
<body>

...
...


例 2

cookie の値を取得するさまざまな方法(cookie を設定した後):

<html>
<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
my cookie value
Array ([TestCookie] => my cookie value)


例 3

有効期限を過去の日付/時刻に設定することで、cookie を削除します:

<?php
// Set the expiration date to one hour ago
setrawcookie ("TestCookie", "", time() - 3600);
?>

<html>
<body>

...
...


例 4

配列 cookie を作成する:

<?php
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>

...
...

上記のコードは次のように出力します:

three : cookiethree
two : cookietwo
one : cookieone


PHP HTTP 参考手册完全な PHP HTTP リファレンスマニュアル その他の拡張