PHP setrawcookie()関数

定義と使用法

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

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

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

cookieに値を割り当てる必要があります。他のすべての出力が送信される前に。

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

文法

setcookie(name,value,expire,path,domain,secure)
パラメータ 説明
name 必須。cookieの名前を指定します。
value 必須。cookieの値を指定します。
expire オプション。cookieの有効期限を指定します。
path オプション。cookieのサーバーパスを指定します。
domain オプション。cookieのドメインを指定します。
secure オプション。cookieを安全なHTTPS接続を通じて転送するかどうかを指定します。

ヒントと注意

注意:「user」名のcookieの値にアクセスするには、$HTTP_COOKIE_VARS["user"] または $_COOKIE["user"]を使用できます。

注意:setrawcookie() と setcookie() ほぼ完全に同じですが、クライアントに送信する際にcookie値を自動的にURLエンコードすることはありません。

インスタンス

例1

cookieの設定と送信:

<?php
$value = "my cookie value";
// 簡単なcookieを送信
setrawcookie("TestCookie",$value);
?>
<html>
<body>
...
...
<?php
$value = "my cookie value";
// 24時間後に失効するcookieを送信
setrawcookie("TestCookie",$value, time()+3600*24);
?>
<html>
<body>
...
...

例2

cookie値の検索方法の異なる方法:

<html>
<body>
<?php
// 出力する個別のcookie
echo $_COOKIE["TestCookie"];
echo "<br />";
echo $HTTP_COOKIE_VARS["TestCookie"];
echo "<br />";
// すべてのコッキーを出力
print_r($_COOKIE);
?>
</body>
</html>

出力:

my cookie value
my cookie value
Array ([TestCookie] => my cookie value)

例 3

// 有効期限を過去の日付/時間に設定することで、コッキーを削除します:

<?php
// 有効期限を1時間前に設定
setrawcookie("TestCookie", "", time() - 3600);
?>
<html>
<body>
...
...

例 4

cookie配列を作成します:

<?php
setrawcookie("cookie[three]","cookiethree");
setrawcookie("cookie[two]","cookietwo");
setrawcookie("cookie[one]","cookieone");
// コッキーを出力(ページリロード後)
if (isset($_COOKIE["cookie"]))
  {
  foreach ($_COOKIE["cookie"] as $name => $value)
    {
    echo "\$name : \$value <br />";
    }
  }
?>
<html>
<body>
...
...

出力:

three : cookiethree
two : cookietwo
one : cookieone