PHPのはsetcookie()関数
定義と使用法
setcookie()関数は、クライアントにHTTPクッキーを送信します。
クッキーは、ブラウザの変数にサーバから送信されています。 クッキーは、多くの場合、小さなテキストファイルで、ユーザーのコンピュータにサーバーに埋め込まれています。 ブラウザを介して、同じコンピュータがページを要求するたびに、クッキーが送信されます。
クッキー名は、自動的に同じ名前の変数に代入されます。 クッキーが送信される場合たとえば、「ユーザー」と呼ばれ、それは自動的にCookieの値を含む、という名前の変数$ユーザーを作成します。
あなたは、クライアントのクッキーの割り当てに他の出力の前に送信されなければなりません。
成功した場合、この関数はTRUEを返します。 それが失敗した場合はFALSEを返します。
文法
参数 | 描述 |
---|---|
name | 必需。规定 cookie 的名称。 |
value | 必需。规定 cookie 的值。 |
expire | 可选。规定 cookie 的过期时间。 time()+3600*24*30 将设置 cookie 的过期时间为 30 天。如果这个参数没有设置,那么 cookie 将在 session 结束后(即浏览器关闭时)自动失效。 |
path | 可选。规定 cookie 的服务器路径。 如果路径设置为 "/",那么 cookie 将在整个域名内有效.如果路径设置为 "/test/",那么 cookie 将在 test 目录下及其所有子目录下有效。默认的路径值是 cookie 所处的当前目录。 |
domain | 可选。规定 cookie 的域名。 为了让 cookie 在 example.com 的所有子域名中有效,您需要把 cookie 的域名设置为 ".example.com"。当您把 cookie 的域名设置为 www.example.com 时,cookie 仅在 www 子域名中有效。 |
secure | 可选。规定是否需要在安全的 HTTPS 连接来传输 cookie。如果 cookie 需要在安全的 HTTPS 连接下传输,则设置为 TRUE。默认是 FALSE。 |
ヒントと注意事項
ヒント:クッキーの「ユーザー」という名前の値にアクセスするためにすることはでき$ HTTP_COOKIE_VARS [ "ユーザー"]または$ _COOKIE [ "ユーザー"]。
注:クッキーを送信する際に、Cookieの値は、自動的にURLがエンコードされます。自動的にURLを受信しデコードします。 その場合、あなたはsetrawcookie()を代わりに使用することができます。
例1
設定し、クッキーを送信します。
$value = "my cookie value";
// send a simple cookie
setcookie("TestCookie",$value);
?>
<html>
<body>
...
...
$value = "my cookie value";
// send a cookie that expires in 24 hours
setcookie("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
setcookie ("TestCookie", "", time() - 3600);
?>
<html>
<body>
...
...
例4
クッキーの配列を作成します。
setcookie("cookie[three]","cookiethree");
setcookie("cookie[two]","cookietwo");
setcookie("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リファレンスマニュアル