ホームページ php教程 php手册 Cookie とその使用 (2)

Cookie とその使用 (2)

Jun 21, 2016 am 09:10 AM
cookie quot setcookie

クッキー

前のパートでは Cookie の技術的背景について説明しました。このパートでは、PHP で Cookie を設定、使用、削除する方法と、Cookie のいくつかの制限について説明します。 PHP の Cookie のサポートは透過的であり、非常に使いやすいです。

1. Cookie を設定する

PHP は SetCookie 関数を使用して Cookie を設定します。注意すべき点の 1 つは、Cookie は HTTP プロトコル ヘッダーの一部であり、ブラウザとサーバーの間で情報を転送するために使用されるため、HTML ファイル自体に属するコンテンツが出力される前に Cookie 関数を呼び出す必要があることです。
SetCookie 関数は Cookie を定義し、それを HTTP ヘッダーの末尾に追加します。 SetCookie 関数のプロトタイプは次のとおりです:
int SetCookie(string name, string value, intexpired, string path, string domain, int secure) ;
名前以外のパラメータはすべてオプションです。 3 つのパラメータ値、パス、およびドメインは空の文字列に置き換えることができ、それらが設定されていないことを示します。expire パラメータと secure パラメータは数値であり、0 で表すことができます。期限切れパラメータは標準の Unix タイムスタンプで、time() または mktime() 関数を使用して秒単位で取得できます。 secure パラメータは、この Cookie が暗号化された HTTPS プロトコルを介してネットワーク上で送信されるかどうかを示します。
現在設定されているCookieはすぐには有効になりませんが、次のページまで表示されません。これは、設定されたページでCookieがサーバーから顧客のブラウザに渡され、ブラウザが顧客からCookieを転送できるためです。次のページへ ファイルがマシンから取得されてサーバーに返される理由。
同じページ上での Cookie の設定は実際には後ろから前へ行われるため、新しい Cookie を挿入する前に Cookie を削除したい場合は、最初に挿入ステートメントを記述し、次に削除ステートメントを記述する必要があります。そうしないと、望ましくないエラーが発生する可能性があります。
いくつかの例を見てみましょう:
単純:
SetCookie("MyCookie", "Value of MyCookie");
有効期限付き:
SetCookie("WithExpire", "Expire in 1 hours", time()+3600 ) ; //3600 秒 = 1 時間
すべてが利用可能です:
SetCookie("FullCookie", "完全な Cookie 値", time()+3600, "/forum", ".phpuser.com", 1);ここでもう 1 つの注意点があります。たとえば、サイトに複数の異なるディレクトリがある場合、パスなしで Cookie のみを使用すると、あるディレクトリのページに設定された Cookie は、別のディレクトリのページには表示されません。つまり、Cookie はパス指向です。実際、パスが指定されていない場合でも、WEB サーバーは現在のパスを自動的にブラウザーに渡し、パスを指定すると、サーバーは設定されたパスを使用するように強制されます。この問題を解決するには、SetCookie を呼び出すときにパスとドメイン名を追加します。ドメイン名の形式は「www.phpuser.com」または「.phpuser.com」です。
SetCookie関数のvalueを表す部分は、渡すときに自動的にエンコードされます。つまり、valueの値が「test value」の場合、URLのメソッドと同様に、渡されたときに「test%20value」になります。もちろん、PHP は Cookie 値を受信すると自動的にデコードするため、これはプログラムに対して透過的です。
同じ名前の複数の Cookie を設定する場合は、配列を使用します。
SetCookie("CookieArray[]", "Value 1");
SetCookie("CookieArray[]", "Value 2"); ;
または
SetCookie("CookieArray[0]", "Value 1");

2. Cookie の受信と処理をサポートします。 Cookie の処理は非常に優れており、完全に自動で行われ、FORM 変数の原理と同じで、非常に簡単です。
たとえば、MyCookier という名前の Cookie を設定すると、PHP は WEB サーバーが受信した HTTP ヘッダーからそれを自動的に分析し、$myCookie という名前の通常の変数と同様の変数を形成します。この変数の値が Cookie の値になります。配列にも同じことが当てはまります。もう 1 つの方法は、PHP のグローバル変数 $HTTP_COOKIE_VARS 配列を参照することです。
例は次のとおりです: (これらが前のページで設定されており、まだ有効であると仮定します)
echo $MyCookie;
echo count($CookieArray);
echo $HTTP_COOKIE_VARS[" ;
とても簡単です。

3. Cookie を削除する

既存の Cookie を削除するには、2 つの方法があります:
1 つは、name パラメーターのみを指定して SetCookie を呼び出すことで、この名前の Cookie が関連するコンピューターから削除されます。 name パラメーターのみを指定して SetCookie を実行する方法の 1 つは、Cookie の有効期限を time() または time()-1 に設定することです。そうすれば、ページが閲覧された後に Cookie が削除されます (実際には期限切れになります)。
Cookie が削除されても、その値は現在のページで引き続き有効であることに注意してください。

4. Cookie の使用に関する制限

まず第一に、HTML ファイルのコンテンツが出力される前に設定する必要があります。
次に、異なるブラウザーでは Cookie の処理に一貫性がなく、場合によっては誤った結果が発生する可能性があります。例: MS IE+SERVICE PACK 1 はドメイン名とパスを持つ Cookie を正しく処理できません。Netscape Communicator 4.05 および MS IE 3.0 はパスと時間がない Cookie を正しく処理できません。 MS IE 5 に関しては、ドメイン名、パス、時刻を含む Cookie を扱うことができないようです。これは、このサイトのページをデザインしているときに発見したものです。
3 番目の制限はクライアント側にあります。ブラウザで作成できる Cookie の最大数は 30 で、各 Cookie は 4KB を超えることはできません。各 Web サイトで設定できる Cookie の総数は 20 を超えることはできません。


クッキーの話題は以上です。

(Cookie は元々 Netscape によって定義されたものであるため、Netscape の正式な Cookie の定義の URL を添付します: http://www.netscape.com/newsref/std/cookie_spec.html)



このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Cookie はどこに保存されますか? Cookie はどこに保存されますか? Dec 20, 2023 pm 03:07 PM

Cookie はどこに保存されますか?

Google ChromeでRoblox 403 Forbiddenエラーを修正する方法 Google ChromeでRoblox 403 Forbiddenエラーを修正する方法 May 19, 2023 pm 01:49 PM

Google ChromeでRoblox 403 Forbiddenエラーを修正する方法

コンピューター上の Cookie はどこにありますか? コンピューター上の Cookie はどこにありますか? Dec 22, 2023 pm 03:46 PM

コンピューター上の Cookie はどこにありますか?

モバイル Cookie はどこにありますか? モバイル Cookie はどこにありますか? Dec 22, 2023 pm 03:40 PM

モバイル Cookie はどこにありますか?

Cookie 漏洩の危険性は何ですか? Cookie 漏洩の危険性は何ですか? Sep 20, 2023 pm 05:53 PM

Cookie 漏洩の危険性は何ですか?

ブラウザの Cookie が保存される場所の詳細な説明 ブラウザの Cookie が保存される場所の詳細な説明 Jan 19, 2024 am 09:15 AM

ブラウザの Cookie が保存される場所の詳細な説明

クッキーの仕組み クッキーの仕組み Sep 20, 2023 pm 05:57 PM

クッキーの仕組み

Cookie をクリアすると何か影響がありますか? Cookie をクリアすると何か影響がありますか? Sep 20, 2023 pm 06:01 PM

Cookie をクリアすると何か影響がありますか?

See all articles