ホームページ >バックエンド開発 >PHPチュートリアル >PHP 使用ガイド - Cookie セクション

PHP 使用ガイド - Cookie セクション

WBOY
WBOYオリジナル
2016-08-08 09:34:03917ブラウズ

PHP 使用ガイド - Cookie セクション

このチュートリアルでは、PHP を使用して Cookie を処理する方法を学習し、Cookie の実際の応用例を説明するために、できるだけ簡単に説明します。

Cookie とは何ですか?またその機能は何ですか?
Cookie は Web サーバーによって生成され、クライアントに関する情報が含まれています。サーバーが指定したhtml情報に埋め込まれ、クライアントとサーバー間で情報を伝達します
。通常、ユーザーの Web ページのパーソナライゼーション、カウンター、訪問したサイトに関する情報の保存などに使用されます。

Cookie と PHP
PHP で Cookie を使用するのは非常に簡単です。 Cookie は setcookie 関数を使用して設定できます。 Cookie は HTTP ヘッダーの一部であるため、コンテンツがブラウザに送信される前に Cookie 関数を設定する必要があります。この制限は header() 関数と同じです。クライアントから渡された Cookie はすべて、自動的に PHP 変数に変換されます。 PHP は情報ヘッダーを取得して分析し、Cookie 名を抽出して変数に変換します。したがって、setcookie("mycookie","wang"); のような Cookie を設定すると、php は値が "wang" の $mycookie という名前の変数を自動的に生成します。
まず setcookie 関数の構文を確認してみましょう:
setcookie(string CookieName, string CookieValue, int CookieExpireTime, パス, ドメイン, int secure); PATH: Web サーバー上のディレクトリを表します。デフォルトは、呼び出されたページが配置されているディレクトリです
DOMAIN: Cookie が使用できるドメイン名。デフォルトは、呼び出されたページのドメイン名です。このドメイン名には 2 つの「.」が含まれている必要があるため、トップレベル ドメイン名を指定する場合は「.mydomain.com」を使用する必要があります
SECURE: 「1」に設定すると、ユーザーのブラウザが安全であるとみなしたサーバーのみが Cookie を記憶できることを意味します

アプリケーション:
登録が必要なサイトの場合、ユーザーの身元が自動的に識別され、見知らぬ人であれば最初に登録するように指示されます。以下の情報を使用して小さなデータベースを作成します: 名、姓、電子メール アドレス、訪問カウンター
以下の手順に従ってテーブルを作成します:

MySQL> データベース ユーザーを作成します。 クエリは OK、1 行が影響を受けました (0.06 秒)

mysql> ユーザーを使用します。 データベースが変更されました

mysql> テーブル情報の作成 (FirstName varchar(20)、LastName varchar(40)、
メール varchar(40)、カウント varchar(3)); クエリは OK、影響を受ける行は 0 (0.05 秒)

さて、要件を満たすテーブルができたので、データベースに対して Cookie をチェックするための PHP ページを構築できます

#####################index.php###################### ## #########
$info =explode("&", $Example); $名=$情報[0]; $LastName=$info[1]; $email=$info[2]; $count=$info[3]; $カウント++

$CookieString=$FirstName.'&'.$LastName.'&'.$email.'&'.$count
SetCookie ("Example",$CookieString, time()+3600); // 新しい Cookie を設定します

エコー"
王の例

こんにちは、$FirstName $LastName、こちらはあなたの訪問番号です: $count

あなたのメールアドレスは: $email


";

mysql_connect() または die ("データベースへの接続の問題") // DB を更新します
; $query = "更新情報セット count=$count where FirstName='$FirstName' および
LastName='$LastName' および email='$email'";
$result = mysql_db_query("users", $query) または die ("問題 .... ");
} //既存の Cookie 命令の終了

else { //Cookie なしの手順を開始します
エコー「

ラフィのクッキーの例
ここをクリックしてサイト登録を行ってください ";
} //Cookie なしの指示を終了します
?>

注: リモートの mysql サーバーまたは unix サーバーを使用している場合は、次のステートメントを使用する必要があります
mysql_connect ("サーバー","ユーザー名","パスワード") または die ("データベースへの接続の問題");
指定された名前の Cookie が HTML ヘッダーで送信されたかどうかを確認したいのですが、PHP は認識された Cookie を対応する変数に変換できるので、「Example」という変数を確認できます。 ...
} その他 {
...
}
この Cookie が存在する場合、カウンターに 1 つ追加され、ユーザー情報が出力されます。この Cookie が存在しない場合は、ユーザーが最初に登録することをお勧めします
Cookie が存在する場合、次の手順を実行します:
$info =explode("&", $Example); //文字列を変数に分割します
$名=$情報[0]; $LastName=$info[1]; $email=$info[2]; $count=$info[3]; $カウント++

$CookieString=$FirstName.'&'.$LastName.'&'.$email.'&'.$count
SetCookie ("Example",$CookieString, time()+3600); // 新しい Cookie を設定します

エコー"
王の例

こんにちは、$FirstName $LastName、こちらはあなたの訪問番号です: $count

あなたのメールアドレスは: $email


";

mysql_connect() または die ("データベースへの接続の問題") // DB を更新します
$query = "更新情報セット count=$count where FirstName='$FirstName' および
LastName='$LastName' および email='$email'";
$result = mysql_db_query("users", $query) または die ("問題 .... ");
} //既存の Cookie 命令の終了
上記のプログラムには 3 つの主要な部分があります。まず、Cookie 値を取得し、explode 関数を使用してそれをさまざまな変数に分割し、カウンターをインクリメントし、新しい Cookie を設定します。次に、HTML ステートメントを使用してユーザー情報を出力します。最後に、データベースが新しいカウンター値で更新されます。
この Cookie が存在しない場合は、次の手順が実行されます:

else { //Cookie なしの手順を開始します
エコー「

ラフィのクッキーの例
ここをクリックしてサイト登録を行ってください ";
} //Cookie なしの指示を終了します

次の reg.php は、登録ページへのリンクをリストするだけです
###########################reg.php################## ###########


サイトの登録
<ボディ bgcolor=#ffffff>

サイトを登録中


<フォームメソッド="post" アクション="reg1.php"> <表の幅=90% 整列=中央> ユーザー名: maxlength=20>
姓: maxlength=40>
メールアドレス: maxlength=40>


すべての情報が送信された後、情報を分析するために別の php ファイルが呼び出されます
###########################reg1.php################# # ##################
{
mysql_connect() または die (「データベースへの接続の問題」); $query="select * from info where FirstName='$FirstName' および
LastName='$LastName' および email='$email'";
$result = mysql_db_query("ユーザー", $query);
$r=mysql_fetch_array($result); $count=$r["カウント"];
if (isset($count)) {
$CookieString=$FirstName.'&'.$LastName.'&'.$email.'&'.$count;  
SetCookie ("例",$CookieString, time()+3600);  
echo "

user $FirstName $LastName はすでに存在します。既存の
を使用します 情報。

";
echo "

メインページに戻る";  
} その他 {
$count = '1';  
$query = "情報値に挿入
('$FirstName','$LastName','$email','$count')";
$result = mysql_db_query("ユーザー", $query);  
$CookieString=$FirstName.'&'.$LastName.'&'.$email.'&'.$count;  
SetCookie ("例",$CookieString, time()+3600);  
echo "ご登録いただきありがとうございます。
";  
}

} else { echo 「申し訳ありませんが、一部の情報が不足しています。戻ってすべてを追加してください
情報"; }
?>  
最初にすべての情報が書き込みを要求しているかどうかを検査し、要求されていない場合は、新たな入力を返します
  
if ($FirstName と $LastName と $email)
{
...
} else { echo 「申し訳ありませんが、一部の情報が不足しています。戻ってすべてを追加してください
情報"; }
?>
すべての情報が充実している場合は、次の手順を実行します:
  
mysql_connect() または die (「データベースへの接続の問題」);  
$query="select * from info where FirstName='$FirstName' および
LastName='$LastName' および email='$email'";
$result = mysql_db_query("ユーザー", $query);  

$r=mysql_fetch_array($result);  
$count=$r["カウント"];  

if (isset($count)) {
$count++;  
$CookieString=$FirstName.'&'.$LastName.'&'.$email.'&'.$count;  
SetCookie ("例",$CookieString, time()+3600);  
echo "

user $FirstName $LastName はすでに存在します。既存の
を使用します 情報。

";
echo "

メインページに戻る";  
} その他 {
$count = '1'; // 新しい訪問者 - カウンターを 1 に設定します。
$query = "情報値に挿入
('$FirstName','$LastName','$email','$count')";
$result = mysql_db_query("ユーザー", $query);  
$CookieString=$FirstName.'&'.$LastName.'&'.$email.'&'.$count;  
SetCookie ("例",$CookieString, time()+3600);  
echo "ご登録いただきありがとうございます。
";  
この段階のプログラムは、データベースにそのようなユーザーが存在するかどうかを検査し (存在しない場合、つまり、この Cookie は削除されています)、存在する場合は、古い情報が指定され、現在の情報を使用して新しい Cookie が作成されます。 、同じユーザーがデータベースに登録していない場合は、新たにデータベースに登録し、新しい Cookie を作成します。
第一、我们从データベース库中取回用户登录详细资料
mysql_connect() または die (「データベースへの接続の問題」);  
$query="select * from info where FirstName='$FirstName' および
LastName='$LastName' および email='$email'";
$result = mysql_db_query("ユーザー", $query);  
$r=mysql_fetch_array($result);  
$count=$r["カウント"];

この用途に 1 つのパラメータがあるかどうか、isset() 関数を利用します
  
if (isset($count)) {
...
} その他 {
...
}
计数器增加并新建一クッキー
$count++; //カウンターを増やす
$CookieString=$FirstName.'&'.$LastName.'&'.$email.'&'.$count;  
SetCookie ("例",$CookieString, time()+3600);  
echo "

user $FirstName $LastName はすでに存在します。既存の情報を使用します。

";  
echo "

メインページに戻る";
用のカウンターがない場合は、mysql にクッキーを追加して
を設定します 注意: いつでも、setcookie は、输输情報を入手したかどうかを確認する前に、ダウンロードツールに送信されます

上記では、PHP が指南 Cookie を使用する部分を説明しましたが、これには側面の内容も含まれており、PHP の教則に興味のある友人が助けてくれる事を期待しています。

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