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

Cookie を使用してユーザーを追跡および識別する_PHP チュートリアル

Jul 21, 2016 pm 04:06 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",$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 または省略された場合は、どのタイプのネットワークでも受け入れられることを意味します。

Cookie と変数

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

各ユーザーを覚えておいてください

上の 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_select_db(dbname);
mysql_query("INSERTINTOtablename(first_name,last_name);
VALUES ( '$first_name','$last_name')
");
setcookie("CookieID",
mysql_insert_id(),
time()+94608000,
"/");/*Cookie は 3 日後に期限切れになりますyears*/
?>

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

Cookie を読む

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

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






http://www.bkjia.com/PHPjc/315307.html

www.bkjia.com

tru​​e
http://www.bkjia.com/PHPjc/315307.html

技術記事ブラウザに保存された内容を見てみましょう。 IE5を使用している場合、WindowsディレクトリにCookieディレクトリがあり、その中にwudonのようなファイル名がたくさんあります...
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPでインターフェイスをどのように作成して使用しますか?PHPでインターフェイスをどのように作成して使用しますか?Apr 30, 2025 pm 03:40 PM

この記事では、PHPでインターフェイスを作成、実装、および使用する方法について説明し、コード組織と保守性の利点に焦点を当てています。

crypt()とpassword_hash()の違いは何ですか?crypt()とpassword_hash()の違いは何ですか?Apr 30, 2025 pm 03:39 PM

この記事では、PHPのCrypt()とpassword_hash()の違いについて、パスワードハッシュの違いについて説明し、最新のWebアプリケーションの実装、セキュリティ、および適合性に焦点を当てています。

PHPのクロスサイトスクリプト(XSS)をどのように防ぐことができますか?PHPのクロスサイトスクリプト(XSS)をどのように防ぐことができますか?Apr 30, 2025 pm 03:38 PM

記事では、入力検証、出力エンコード、およびOWASP ESAPIやHTML浄化器などのツールを使用して、PHPのクロスサイトスクリプト(XSS)を防止します。

PHPの自動装置は何ですか?PHPの自動装置は何ですか?Apr 30, 2025 pm 03:37 PM

PHPでのオートローディングは、必要に応じてクラスファイルを自動的にロードし、メモリの使用を削減し、コード組織を強化することでパフォーマンスを向上させます。ベストプラクティスには、PSR-4の使用とコードを効果的に整理することが含まれます。

PHPストリームとは何ですか?PHPストリームとは何ですか?Apr 30, 2025 pm 03:36 PM

PHPストリームは、一貫したAPIを介したファイル、ネットワークソケット、圧縮形式などのリソースの処理を統合し、複雑さを抽象化し、コードの柔軟性と効率を高めます。

PHPを使用してアップロードできるファイルの最大サイズはどれくらいですか?PHPを使用してアップロードできるファイルの最大サイズはどれくらいですか?Apr 30, 2025 pm 03:35 PM

この記事では、PHPでファイルアップロードサイズの管理を管理し、2MBのデフォルト制限とPHP.ini設定を変更してそれを増やす方法に焦点を当てています。

PHPのめまいの種類とは何ですか?PHPのめまいの種類とは何ですか?Apr 30, 2025 pm 03:34 PM

この記事では、PHP 7.1で導入されたPHPのヌル可能なタイプについて説明し、変数またはパラメーターが指定されたタイプまたはnullのいずれかを可能にします。読みやすさの改善、タイプの安全性、明示的な意図などの利点を強調し、宣言する方法を説明します

unset()とlink()関数の違いは何ですか?unset()とlink()関数の違いは何ですか?Apr 30, 2025 pm 03:33 PM

この記事では、プログラミングのunset()とlink()関数の違いについて説明し、目的とユースケースに焦点を当てています。 unset()はメモリから変数を削除しますが、link()はファイルシステムからファイルを削除します。どちらもEFFECにとって重要です

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

MantisBT

MantisBT

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

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

メモ帳++7.3.1

メモ帳++7.3.1

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