PHPクッキー
クッキーとは何ですか?
Cookieは、ユーザーを識別するためによく使用されます。Cookieは、サーバーがユーザーのコンピューターに埋め込む小さなファイルです。同じコンピュータがブラウザでページを要求するたびに、Cookieも送信します。PHPを使用すると、Cookie値の作成と取得の両方を行うことができます。
PHPでCookieを作成する
この関数を使用してCookieが作成されsetcookie()
ます。
構文
setcookie(name, value, expire, path, domain, secure, httponly);
nameパラメーターのみが必要です。他のすべてのパラメーターはオプションです。
PHPはCookieを作成/取得します
次の例では、値が「JohnDoe」の「user」という名前のCookieを作成します。Cookieは30日後に期限切れになります(86400 * 30)。「/」は、CookieがWebサイト全体で利用可能であることを意味します(それ以外の場合は、希望するディレクトリを選択します)。
次に、Cookie「user」の値を取得します(グローバル変数$ _COOKIEを使用)。isset()
また、この関数を使用して、Cookieが設定されているかどうかを確認します。
例
<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
注:setcookie()
関数は、<html>タグの前に表示される必要があります。
注: Cookieの値は、Cookieの送信時に自動的にURLエンコードされ、受信時に自動的にデコードされます(URLエンコードを防ぐために、setrawcookie()
代わりに使用してください)。
Cookieの値を変更する
setcookie()
Cookieを変更するには、次の関数を使用してCookieを(再度)設定するだけです。
例
<?php
$cookie_name = "user";
$cookie_value = "Alex Porter";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
クッキーを削除する
Cookieを削除するにはsetcookie()
、有効期限が過去の関数を使用します。
例
<?php
// set the expiration date to one hour ago
setcookie("user", "", time() - 3600);
?>
<html>
<body>
<?php
echo "Cookie 'user' is deleted.";
?>
</body>
</html>
Cookieが有効になっているかどうかを確認します
次の例では、Cookieが有効になっているかどうかを確認する小さなスクリプトを作成します。まず、関数を使用してテストCookieを作成してからsetcookie()
、$ _ COOKIE配列変数をカウントします。
例
<?php
setcookie("test_cookie", "test", time() + 3600, '/');
?>
<html>
<body>
<?php
if(count($_COOKIE) > 0) {
echo "Cookies are enabled.";
} else {
echo "Cookies are disabled.";
}
?>
</body>
</html>
完全なPHPネットワークリファレンス
ネットワーク関数の完全なリファレンスについては、完全な PHPネットワークリファレンスにアクセスしてください。