Cookie はクライアントのコンピュータに保存されるテキスト ファイルであり、追跡目的で保持されます。 PHP は HTTP Cookie を透過的にサポートします。
リピーター ユーザーの特定には 3 つの手順が必要です
#● サーバー スクリプトは、一連の Cookie をブラウザーに送信します。年齢などなど。##●ブラウザは、今後の使用に備えてこの情報をコンピュータ上にローカルに保存します。
#●次回ブラウザが Web サーバーにリクエストを送信するときに、これらの Cookie 情報がサーバーに送信されます。サーバーはこの情報を使用してユーザーを識別します。 この章では、Cookie の設定方法、Cookie へのアクセス方法、削除方法について説明します。Cookie の構造
Cookie は通常、HTTP ヘッダーに設定されます (ただし、JavaScript はブラウザーに直接 Cookie を設定することもできます)。 Cookie を設定する PHP スクリプトは、次のようなヘッダーを送信することがあります (ブラウザー F12、ネットワークで表示)
HTTP/1.1 200 OK Date: Fri, 04 Feb 2000 21:03:38 GMT Server: Apache/1.3.9 (UNIX) PHP/4.0b3 Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT; path=/; domain=jc2182.com Connection: close Content-Type: text/html
GET / HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc) Host: zink.demon.co.uk:1126 Accept: image/gif, */* Accept-Encoding: gzip Accept-Language: en Accept-Charset: iso-8859-1,*,utf-8 Cookie: name=xyz
PHP スクリプトは、すべての Cookie の名前と値が含まれる環境変数 $_COOKIE にアクセスできます。
PHP で Cookie を設定する
PHP には、Cookie を設定するための setcookie() 関数が用意されています。この関数は最大 6 つのパラメータを受け取り、 タグの前に呼び出す必要があります。この関数は、Cookie セットごとに個別に呼び出す必要があります。
setcookie(name, value, expire, path, domain, security);
#●name - Cookie の名前を設定します。
# 値 - 名前付き変数の値を、実際に保存したい値に設定します。
# Expire - 1970 年 1 月 1 日の 00:00:00 GMT からの将来の時間を (秒単位で) 指定します。この時間が経過すると、Cookie にアクセスできなくなります。このパラメータが設定されていない場合、Web ブラウザを閉じると Cookie は自動的に期限切れになります。
# パス - Cookie が有効なディレクトリを指定します。単一のスラッシュ文字により、Cookie をすべてのディレクトリに対して有効にすることができます。
#ドメイン - これは非常に大規模なドメインのドメイン名を指定するために使用でき、少なくとも 2 つの有効期間を含める必要があります。すべての Cookie は、Cookie が作成されたホストおよびドメインに対してのみ有効です。
# セキュリティ - Cookie を HTTPS を使用した安全なトランスポート経由でのみ送信することを指定するには 1 に設定できます。それ以外の場合は 0 に設定すると、Cookie を通常の HTTP 経由で送信できることになります。
次の例では、名前と年齢という 2 つの Cookie が作成されます。これらの Cookie は 1 時間後に期限切れになります。
<?php setcookie("name", "John Watkin", time()+3600, "/","", 0); setcookie("age", "36", time()+3600, "/", "", 0); ?> <html> <head> <title>用PHP设置Cookies</title> </head> <body> <?php echo "设置 Cookies"?> </body> </html>
ブラウザを開いてスクリプトにアクセスし、F12 キーを押して開発者モードを開き、[ネットワーク] タブを選択して、[ヘッダー] を選択すると、次の図が表示されます:
PHP を使用した Cookie へのアクセス
PHP には、Cookie にアクセスするためのさまざまな方法が用意されています。最も簡単な方法は、$_COOKIE 変数を使用することです。次の例では、上記の例で設定されたすべての Cookie にアクセスします。 <html>
<head>
<title>用PHP访问cookie</title>
</head>
<body>
<?php
echo $_COOKIE["name"]. "<br />";
echo $_COOKIE["age"] . "<br />";
?>
</body>
</html>
<html> <head> <title>用PHP访问cookie</title> </head> <body> <?php if(isset($_COOKIE["name"])) echo $_COOKIE["name"]. "<br />"; if(isset($_COOKIE["age"])) echo $_COOKIE["age"] . "<br />"; ?> </body> </html>
形式的に言えば、Cookie を削除するには、name パラメータを指定して setcookie() を呼び出すだけです (つまり、削除したいものはその名前を null に設定します] が、これは常に機能するとは限らず、依存すべきではありません。最も安全な方法は、有効期限を設定することです/過去の時刻を現在時刻の 60 秒前に設定します/
<?php /* 设置过去时间为当前时间的之前的60秒 */ setcookie( "name", "", time()- 60, "/","", 0); setcookie( "age", "", time()- 60, "/","", 0); ?> <html> <head> <title>用PHP删除cookie</title> </head> <body> <?php echo "删除cookie" ?> </body> </html>
推奨される学習:
PHP チュートリアル以上がPHP は Cookie をどのように操作しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。