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、path、domain、int secure);
PATH: Web サーバー上のディレクトリを表します。デフォルトは、呼び出されたページが配置されているディレクトリです。
DOMAIN: Cookie が使用できるドメイン名使用する場合、デフォルトは呼び出されたページのドメイン名です。このドメイン名には 2 つの「.」が含まれている必要があるため、トップレベルのドメイン名を指定する場合は「.mydomain.com」を使用する必要があります
SECURE: 「1」に設定すると、Cookie が安全であるとのみみなされることを意味しますユーザーのブラウザによってサーバーは
アプリケーションを記憶します:
登録が必要なサイトの場合、ユーザーの身元が自動的に識別され、そのユーザーに情報が送信されます。見知らぬ人の場合は、まず登録するように指示されます。以下の情報に基づいて小さなデータベースを作成します: 名、姓、電子メール アドレス、訪問カウンタ
次の手順に従ってテーブルを作成します。
mysql> クエリ OK、1 行が影響を受けます。 0.06 秒)
mysql> ユーザーを使用します;
データベースが変更されました
mysql> テーブル情報を作成します (FirstName varchar(40), count varchar(3)); 、影響を受ける行は 0 件 (0.05 秒)
要件を満たすテーブルができたので、データベースに対して Cookie をチェックするための PHP ページを構築できます
####### ##### ##########index.php############################ ####
< ? if (isset($Example)) { //既存の Cookie の命令を開始します
$info =explode("&", $Example);
$FirstName=$info[1]; ;
$email=$info[2];
$count=$info[3];
$CookieString=$FirstName.'&'.$LastName.'&' .$count;
SetCookie ("Example",$CookieString, time()+3600); // 新しい Cookie を設定します
echo"
こんにちは $FirstName $LastName、これはあなたの訪問番号です: $ count
/update DBuser $FirstName $LastName はすでに存在します。既存の
info を使用します。< / p>";
echo "
メインページに戻る";
} else {
$count = '1';
$query = " 情報値に挿入します
('$FirstName','$LastName','$email','$count')"; FirstName.' &'.$LastName.'&'.$email.'&'.$count;
SetCookie ("Example",$CookieString, time()+3600); br>" ;
}
} else { echo "申し訳ありませんが、一部の情報が不足しています。戻ってすべての情報を追加してください。"; }
?>
まず、すべての情報が必要に応じて入力されているかどうかを確認してください。そうでない場合は、戻って再入力してください
if ($FirstName と $LastName と $email)
{
...
} else { echo "申し訳ありませんが、一部の情報が不足しています。戻ってすべてを追加してください
情報"; }
?>
結果としてすべての情報が充填されれば、次のことを実行します:
mysql_connect() or die (「データベースへの接続の問題」);
$query="select * from info where FirstName='$FirstName' and
LastName='$LastName' and 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 はすでに存在します。既存の
情報を使用しています。
メインページに戻る";
} else {
$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() or die (「データベースへの接続の問題」);
$query="select * from info where FirstName='$FirstName' and
LastName='$LastName' and email='$email'";
$result = mysql_db_query("ユーザー", $query);
$r=mysql_fetch_array($result);
$count=$r["カウント"];
现在检查に一计数器があるかどうか、この用户、利用isset()関数数
if (isset($count)) {
...
} else {
...
}
计数器增加并新建一cookie
$カウント++; //カウンターを増やす
$CookieString=$FirstName.'&'.$LastName.'&'.$email.'&'.$count;
SetCookie ("例",$CookieString, time()+3600);
echo "
user $FirstName $LastName はすでに存在します。既存の情報を使用します。
";メインページに戻る";
場合は、mysql に追加を追加し、Cookie を設定します
注意: いつでも、setcookie は、ログイン情報を取得したかどうかを確認する前に、サーバーに送信されます
###### #############################################
---進む翻訳、有不一致之处、请qianjinok@china.com-------