検索
ホームページphp教程php手册Cookie を使用してユーザーを追跡および識別する

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

Jun 13, 2016 pm 12:42 PM
cookiesieコンテンツ存在する私たちはいブラウザ使用ユーザー使用識別する追跡

ブラウザに保存された内容を見てみましょう。 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」。コロン、カンマ、スペースを間に入れることはできません。このパラメータは必須ですが、他のパラメータはすべてオプションです。このパラメータのみを指定した場合、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 または省略された場合は、どのタイプのネットワークでも受け入れられることを意味します。

Cookie と変数

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

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

mysql_connect(localhost,username,password);
mysql_select_db(dbname); > mysql_query( "INSERTINTOtablename(first_name,last_name)
VALUES('$first_name','$last_name')
");
setcookie("CookieID",
mysql_insert_id(),
time() 94608000,
"/");/*Cookie は 3 年後に期限切れになります*/
?>

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

Cookie を読み取ります

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

まず、Cookie の内容を表示します。
print$CookieID; > mysql_connect(localhost,username,password); mysql_select_db(dbname);
$selectresult=mysql_query("SELECT*FROMtablename
WHEREUSERID='$CookieID'
" ); $row=mysql_fetch_array($selectresult); echo "ようこそ",$row[first_name],"!";
?>
以上です。私には判断力はありませんので、完成させるのはあなたにお任せします



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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

メモ帳++7.3.1

メモ帳++7.3.1

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