ホームページ  >  記事  >  バックエンド開発  >  PHP セッション トラッキング 1 (41)

PHP セッション トラッキング 1 (41)

WBOY
WBOYオリジナル
2016-08-08 09:23:05838ブラウズ

PHP セッション追跡

セッション制御とは

Web サイトがクライアントとサーバー間の対話を追跡し、各ユーザーの ID と情報を保存して記憶し、セッション制御が生成されるようにするには、強力なソリューションが必要です。
??セッション制御とは:
??HTTP はステートレス プロトコルです。このプロトコルは 2 つのトランザクション間の接続を維持できません。
??ユーザーがあるページをリクエストし、次に別のページをリクエストした場合、HTTP では 2 つのリクエストが同一人物からのものであるかどうかを判断できません。
??セッション制御の考え方は、Web サイト内の変数を追跡できるようにすることで、ユーザーをサポートし、認証とユーザー ID に基づいてさまざまなコンテンツやページを表示できるようにすることです。

セッショントラッキングテクノロジー

非表示のフォームフィールド

セッショントラッキングフィールドの非表示のフォームフィールドをHTMLページに追加しますが、クライアントブラウザには表示されません

<form action = &ldquo;main.php&rdquo;method=&rdquo;POST&rdquo;><input type = &ldquo;hidden&rdquo;name=&ldquo;checkid&rdquo;value=&ldquo;ZY7K&rdquo;></form><br>在GET 和POST 方法中指定用于存储有关会话消息的名称和值。

URL書き換え

?? Location) 書き換えテクノロジは、セッションを識別するために URL の末尾に一意のセッション ID を追加します。
??たとえば、次の URL をセッション ID=1002 を渡すように書き換えます

原始URL:http:<span>//</span><span>www.myphp.com/load.php</span>用添加的参数重写的URL:http:<span>//</span><span> www.myphp.com/load.php? id=1002原始URL:</span><span>http://www.myphp.com/bookinfo.php</span>用添加的参数重写的URL:http:<span>//</span><span>www.myphp.com/bookinfo.php?bookid=1000</span>

Cookie とセッション

セッションをより広範囲かつ長時間追跡する必要がある場合は、Cookie とセッションを使用する必要があります。セッション。たとえば、一部の Web サイトからダウンロードするには、まずメンバーがログインする必要があります。顧客がログイン済みかどうか、また自動的にログインできるかどうかを知りたい場合はどうすればよいですか? Cookie やセッションを通じてそれを知ることができます。
??たとえば、オンラインで買い物をするとき、ショッピング カートは顧客がどの商品を選択したかをどのようにして知るのでしょうか? Cookie とセッションも記録できます。
??要するに、Cookieとセッションは顧客の状態を記録できる技術ですが、Cookieができることであればセッションでも記録することができます。

cookie

cookie とは:
??cookie は、サーバーまたはスクリプトが http プロトコルの下でクライアント情報を維持する方法です。
??Cookie は、Web サーバーによってユーザーのブラウザに保存される Cookie (小さなテキスト ファイル) であり、ユーザーに関する情報を含めることができ、ユーザー名、パスワード、個人設定、個人設定の記録などを保存するためによく使用されます。 。ユーザーがサーバーにアクセスすると、サーバーは Cookie 情報を設定してアクセスできます。
??Cookie はクライアント (通常は IE または Firefox ブラウザ) の Cookie 一時フォルダーに保存され、手動で削除できます。注: ブラウザー上の Cookie が多すぎて、システムで許可されている範囲を超える場合、ブラウザーはそれらの Cookie を自動的に削除します。

Cookie の仕組み

顧客が PHP テクノロジーに基づいた Web サイトにアクセスすると、PHP の setcookie() 関数を使用して Cookie を生成し、処理後、システムは Cookie をクライアントに送信し、C に保存します。ドキュメントと設定のユーザー名 Cookie ディレクトリ。
??Cookie は HTTP ヘッダーの一部であるため、HTML 自体のコンテンツがブラウザーに送信される前に setcookie() 関数を呼び出す必要があります。この制限は header() 関数と同じです (head() 関数を理解する必要がある場合は、自分で確認してください)。
??顧客が再度 Web サイトにアクセスすると、ブラウザは C:Documents and Settings のユーザー名 Cookie ディレクトリ内の Web サイトに対応する Cookie をサーバーに自動的に送信し、サーバーはクライアントから送信された Cookie を自動的に変換します。 PHP 変数。 PHP5 では、クライアントから送信された Cookie はグローバル変数に変換されます。 $_COOKIE[‘xxx’] を通じて読み取ることができます。

Cookieを定義します

Set cookie:
?? 構文: boolsetcookie(stringname,[stringvalue,[intexpire,[stringpath,[stringdomain,[intsecure]]]]]);
このCookie関数は6つの属性を持つことができます。は、一般的に使用される 3 つのパラメータです。
??例:
$value="最善の方法は自分で行うことです";
setcookie("cookiename",$value,time()+60*60*24*7);

setcookieパラメータの説明

Cookie の受信と処理
PHP は Cookie を適切にサポートしています。フォームフォームと同様に、PHP は Web サーバーから HTTP ヘッダーを自動的に受信し、受信時に分析します。受信するときは、$_COOKIE["cookiename"] または $HTTP_COOKIE_VARS["cookiename"] を使用してください (推奨されません)

注:
Web サイトに複数の異なるファイル ディレクトリがある場合は、パスなしの Cookie を使用してください。この場合、この Cookie は次の場所でのみアクセスできます。 Cookieが設定されているファイルのパス。パスを指定した場合は、設定時のパスが指定パスとしてCookieにアクセスします。

Cookie配列を作成します:

最初:
setcookie("CookieArray[0]", "Value 1");
setcookie("CookieArray[1]", "Value 2");
2番目:
setcookie( "CookieArray ['one']", "Value 1");
setcookie("CookieArray['two']", "Value 2");

setcookie() で配列を使用する

<?<span>php
setcookie(</span><span>"</span><span>cookie[three]</span><span>"</span>, <span>"</span><span>cookiethree</span><span>"</span><span>);
setcookie(</span><span>"</span><span>cookie[two]</span><span>"</span>, <span>"</span><span>cookietwo</span><span>"</span><span>);
setcookie(</span><span>"</span><span>cookie[one]</span><span>"</span>, <span>"</span><span>cookieone</span><span>"</span><span>);
</span><span>//</span><span> 刷新页面后,显示出来</span><span>if</span> (isset($_COOKIE[<span>'</span><span>cookie</span><span>'</span><span>])) {
</span><span>foreach</span>($_COOKIE[<span>'</span><span>cookie</span><span>'</span>] <span>as</span> $name =><span> $value){
echo </span><span>"</span><span>$name : $value <br/>\n</span><span>"</span><span>;
}
}
</span>?>

Cookie を削除する

既存の Cookie を削除するには、2 つの方法があります:
1. name パラメータのみを指定して setcookie を呼び出します。その後、この
という名前の Cookie がクライアントから削除されます。
setcookie("MyCookie"); 2. Cookie の有効期限を time() または time()-1 に設定します。 注:
有効期限内である限り、time() がどれだけ短縮されても問題ありません
その後、この Cookie は有効になります。このページは閲覧後、削除されました
(実際には期限切れです)。
??例:
setcookie("MyCookie","Value",time()-1);
//MyCookieを削除します。
注: Cookie が削除されても、その値は現在のページで
引き続き有効です。ブラウザを閉じた後に Cookie が期限切れになるように設定したい場合。
その後、expiretimeを直接0に設定することも、この値を設定しないこともできます。
例: setcookie("name","value",0)。

Cookieに関する注意事項

1. setcookie()の前にHTML出力を含めることはできません。つまり、空白

はHTMLファイルの内容が出力される前に設定する必要があります
?? setcookie()、現在いるページでは echo $_COOKIE["name"] を呼び出しても出力はありません。 Cookie の値を確認するには、更新するか次のページに移動する必要があります。
•3. ブラウザーが Cookie を別の方法で処理する必要はありません。クライアントは Cookie を無効にすることができ、ブラウザも Cookie の数を制限します。ブラウザで作成できる Cookie の最大数は 300 で、各 Cookie は 4KB を超えることはできません。各 Web サイトで設定できる Cookie の総数は 20 を超えることはできません。
??4. ユーザーが Cookie を無効にすると、Cookie はクライアント側に保存されます。したがって、Cookie に過度に依存することは避け、念のため Cookie が無効になっている場合の解決策を検討してください

上記は、PHP セッション トラッキング 1 (41) を内容の側面も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

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