ホームページ > バックエンド開発 > PHPチュートリアル > PHP と MySQL の基本チュートリアル (3)

PHP と MySQL の基本チュートリアル (3)

黄舟
リリース: 2023-03-03 15:30:02
オリジナル
1379 人が閲覧しました

この記事の内容は PHP と MySQL の基本的なチュートリアルです。必要な方は参考にしていただければ幸いです。

Cookieを使用してユーザーを追跡し、識別します

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

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

Cookie への値の割り当て

サーバーがクライアントのブラウザにコンテンツを送信する前に、Cookie に値を割り当てる必要があります。これを行うには、Cookie 設定を < HEAD> タグに配置する必要があります:

< ?php 
setcookie("CookieID", $USERID); 
?> 
< HTML> 
< BODY> 
< /BODY> 
< /HTML>
ログイン後にコピー

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

Cookie の名前は次のような文字列です。 「CookieID」 。コロン、カンマ、スペースを間に入れることはできません。このパラメータは必須ですが、他のパラメータはすべてオプションです。このパラメータのみを指定した場合、Cookie は削除されます。
Cookie の値は通常、$USERID などの文字列変数です。 ?? を割り当てて値の設定をスキップすることもできます。
クッキーの有効期限が切れる時刻。省略した場合 (または値 0 を割り当てた場合)、Cookie はセッションの終了時に期限切れになります。このパラメータには、「24-Nov-99 08:26:00」のように、DD-Mon-YY HH:MM:SS で表される絶対時刻を指定できます。より一般的に使用されるのは、相対時間を設定することです。これは、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 と呼びます:

PRint $HTTP_COOKIE_VARS[CookieID];
ログイン後にコピー

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


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

< ?php 
mysql_connect (localhost, username, passWord); 
mysql_select_db (dbname); 
mysql_query ("INSERT INTO tablename (first_name, last_name) 
VALUES (&#39;$first_name&#39;, &#39;$last_name&#39;) 
"); 
setcookie("CookieID", 
mysql_insert_id(), 
time()+94608000, 
"/"); /* 三年后 cookie 才会失效 */ 
?>
ログイン後にコピー

PHP 函数 mysql_insert_id() 返回在最后一次执行了 INSERT 查询后,由 AUTO_INCREMENT 定义的字段的值。这样,只要你不清除掉浏览器的 Cookies ,网站就会永远“记住”你了

读取 cookie

我们来写一个像 Amazon.com 所作的那样的脚本。首先, PHP 脚本会先检查客户浏览器是否发送了 cookie 过来,如果是那样的话,用户的姓名就会被显示出来。如果没找到 cookie 的话,就显示一个表单,让客户登记他们的姓名,然后把他添加到数据库中,并在客户浏览其中设置好 cookie 。

首先,先来显示 cookie 的内容:

< ?php 
print $CookieID; 
?>
ログイン後にコピー

然后,就可以把名字显示出来了:

< ?php 
mysql_connect (localhost, username, password); 
mysql_select_db (dbname); 
$selectresult = mysql_query ("SELECT * FROM tablename 
WHERE USERID = &#39;$CookieID&#39; 
"); 
$row = mysql_fetch_array($selectresult); 
echo " 欢迎你的光临 ", $row[first_name], "!"; 
?>
ログイン後にコピー

就是这样的了。我在其中没有作判断,交给你自己来完成好了 

以上就是PHP 和 MySQL 基础教程(三)的内容,更多相关内容请关注PHP中文网(www.php.cn)! 

相关推荐: 

 关于mysql 基础知识的总结 

 PHP 和 MySQL 基础教程(一) 

 PHP 和 MySQL 基础教程(二) 

 PHP 和 MySQL 基础教程(三) 

 PHP 和 MySQL 基础教程(四)

mysql手册教程:http://www.php.cn/course/37.html

mysql视频教程:http://www.php.cn/course/list/51.html

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