PHP setcookie() 関数

定義と使用法

setcookie() 関数はクライアントに HTTP cookie を送信します。

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"] を使用できます。

コメント:cookie を送信する際、cookie の値は自動的に URL エンコードされます。受信時に URL デコードされます。これが必要でない場合は、以下を使用できます setrawcookie() 代替。

例 1

cookie を設定および送信:

<?php
$value = "my cookie value";
// 簡単な cookie を送信
setcookie("TestCookie",$value);
?>
<html>
<body>
...
...
<?php
$value = "my cookie value";
// 24時間後に失効する cookie を送信
setcookie("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 />";
// 全てのcookieを出力
print_r($_COOKIE);
?>
</body>
</html>

出力:

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

例 3

// 失効日時を過去の日時/時間に設定することでcookieを削除します:

<?php
// 失効日時を1時間前に設定
setcookie ("TestCookie", "", time() - 3600);
?>
<html>
<body>
...
...

例 4

cookie:配列を作成します:

<?php
setcookie("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>
...
...

出力:

three : cookiethree
two : cookietwo
one : cookieone