PHP の使用に関する詳細なチュートリアル Cookie_PHP チュートリアル

WBOY
リリース: 2016-07-21 15:09:07
オリジナル
881 人が閲覧しました

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 );
Except name を除くすべてのパラメータはオプションです。 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");
SetCookie("CookieArray[1]", "Value 2");

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



3. Cookie を削除する
既存の Cookie を削除するには、次の 2 つの方法があります。
まず、name パラメーターのみを指定して SetCookie を呼び出します。その後、この名前の Cookie が関連するコンピューターから削除されます。もう 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 で、それぞれ 4KB を超えることはできません。各 Web サイトで設定できる Cookie の総数は 20 を超えることはできません。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327394.html技術記事 1. Cookie の設定 PHP は SetCookie 関数を使用して Cookie を設定します。注意しなければならないことの 1 つは、Cookie は HTTP プロトコル ヘッダーの一部であり、ブラウザとサーバーの間で情報を転送するために使用されるため、Cookie は次のことを行う必要があるということです...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート