ホームページ > バックエンド開発 > PHPチュートリアル > PHP で Cookie を使用してユーザーを追跡および識別する

PHP で Cookie を使用してユーザーを追跡および識別する

WBOY
リリース: 2016-08-08 09:33:41
オリジナル
900 人が閲覧しました

ブラウザに保存された内容を見てみましょう。 IE5 を使用している場合は、Windows ディレクトリに Cookie ディレクトリがあり、その中には wudong@15秒[1].txt のようなファイル名があり、これらはブラウザが値を保存するために使用する Cookie です。 。以前のバージョンの IE では Cookie の内容を表示できましたが、現在は内容がエンコードされています。ブラウザは Web ページを取得する前に、まずそのページのドメイン名が Cookie に存在するかどうかを確認し、一致するものがあれば、ブラウザはまず一致する Cookie をサーバーに送信し、次に送信された Cookie を受け入れて処理します。サーバーページによって。

Cookie の適用例を見てみましょう。Amazon.com に接続すると、ブラウザは最初のページを受け入れる前に、以前に設定した Cookie の内容を Amazon に送信します。その後、Amazon.com は送信されたコンテンツをチェックして、データベースに関連する情報があるかどうかを確認した後、カスタマイズされたページを作成して送信します。
Cookie に値を割り当てる

サーバーがクライアントのブラウザにコンテンツを送信する前に、Cookie に値を割り当てる必要があります。これを行うには、Cookie 設定を タグ内に配置する必要があります。 setcookie("CookieID",$USERID)


setcookie 関数には、カンマで区切られた合計 6 つのパラメーターがあります。

Cookie の名前は文字列です (例: "CookieID")。コロン、カンマ、スペースを間に入れることはできません。このパラメータは必須ですが、他のパラメータはすべてオプションです。このパラメータのみを指定した場合、Cookie は削除されます。

Cookie の値は通常、$USERID などの文字列変数です。 ?? を割り当てて値の設定をスキップすることもできます。

Cookie の有効期限が切れる時刻。省略した場合 (または値 0 を割り当てた場合)、Cookie はセッションの終了時に期限切れになります。このパラメータには、DD-Mon-YYHH:MM:SS で表される絶対時刻を指定できます (例: "24-Nov-9908:26:00")。より一般的に使用されるのは、相対時間を設定することです。これは、time() 関数または mktime 関数を通じて実現されます。たとえば、time()+3600 を指定すると、Cookie は 1 時間後に期限切れになります。

Cookie を照合するために使用されるパス。サーバー上に同じ名前の Cookie 設定が複数ある場合、このパラメータは混乱を避けるために使用されます。 「/」パスを使用すると、このパラメータを省略した場合と同じ効果があります。 Netscape の Cookie 定義ではパスの前にドメイン名が置かれますが、PHP ではその逆であることに注意してください。

サーバーのドメイン名は、Cookie の照合にも使用されます。サーバーのドメイン名の前にドット (.) を置く必要があることに注意してください。例: 「.friendshipcenter.com」。 3 つ以上の点が存在しない限り、このパラメータは受け入れられないためです。

Cookie のセキュリティ レベルは整数です。 1 は、この Cookie が「安全な」ネットワーク経由でのみ送信できることを意味します。 0 または省略された場合は、どのタイプのネットワークでも受け入れられることを意味します。

クッキーと変数

PHP スクリプトは、クライアントのブラウザから Cookie を抽出すると、それを自動的に変数に変換します。たとえば、CookieID という名前の Cookie は変数 $CookieID になります。
Cookie の内容は HTTP_COOKIE_VARS 配列に保存されると報告されており、この配列と Cookie の名前を通じて指定された Cookie 値にアクセスすることもできます。
PRint$HTTP_COOKIE_VARS[CookieID]

すべてのユーザーを覚えておいてください

上記の submitform.php3 ファイルを見てみましょう。このファイルの機能は、顧客の名前をデータベースに追加することです。各ユーザーに一意のユーザー ID を割り当て、この ID を Cookie に入れて、ユーザーが Web サイトにアクセスするたびに、Cookie とその中のユーザー ID を通じてそのユーザーが誰であるかを知ることができるようにしたいと考えています。

MySQL は、各新しいレコードに自動的に番号を割り当てるように設定できます。この番号は 1 から始まり、その後は毎回自動的に 1 ずつ増加します。 1 行の SQL ステートメントで、このようなフィールドをデータ テーブルに簡単に追加できます。これを USERID:
と呼びます。 ALTERTABLEdbname
列を追加
USERIDINT(11)NOTNULL
PRIMARYKEYAUTO_INCREMENT

このフィールドにはいくつかの特別な設定を行いました。まず、「INT(11)」によってその型を 11 ビット整数として定義し、次に「NOTNULL」キーワードを使用してこのフィールドの値が NULL にならないようにし、次に「PRIMARYKEY」を使用してインデックス フィールドとして設定します。最後に、「AUTO_INCREMENT」により、自動的にインクリメントされるフィールドとして定義されます。

ユーザーの名前がデータベースに挿入されたら、ブラウザーに Cookie を設定します。このときに使用されるのは、先ほど説明した USERID フィールドの値です:

mysql_connect(ローカルホスト,ユーザー名,パスワード); mysql_select_db(データベース名);mysql_query("INSERTINTOテーブル名(名,姓)
VALUES('$first_name','$last_name')
");
setcookie("CookieID",
mysql_insert_id()、
時間()+94608000、
"/");/*Cookie は 3 年後に期限切れになります*/


PHP 関数 mysql_insert_id() は、最後の INSERT クエリが実行された後、AUTO_INCREMENT によって定義されたフィールドの値を返します。このようにして、ブラウザの Cookie をクリアしない限り、ウェブサイトはあなたのことを永久に「記憶」します

クッキーを読む

Amazon.com が行うようなスクリプトを書いてみましょう。まず、PHP スクリプトはクライアントのブラウザが Cookie を送信したかどうかを確認し、送信されている場合はユーザーの名前が表示されます。 Cookie が見つからない場合は、顧客に名前の登録を求めるフォームが表示され、その後データベースに追加され、顧客が閲覧している間に Cookie が設定されます。

まず、Cookie の内容を表示しましょう:
印刷$CookieID

次に、名前を表示できます:
mysql_connect(ローカルホスト,ユーザー名,パスワード); mysql_select_db(データベース名); $selectresult=mysql_query("SELECT*FROMテーブル名
WHEREUSERID='$CookieID'
");
$row=mysql_fetch_array($selectresult); echo "ようこそ",$row[first_name],"!";
それでおしまい。私には判断力はありませんので、完成させるのはあなたにお任せします



上記では、コンテンツの側面も含めて、PHP でのユーザーの追跡と識別のための Cookie の使用方法を紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート