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

PHP ユーザーガイド - Cookie セクション_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:02:07683ブラウズ

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"
wang example< ;/title> ;/p> ='$FirstName' および <br>LastName='$LastName' および email='$email'"; <br>$result = mysql_db_query("users", $query) or die ("問題 .... "); <br><br>} //既存の Cookie の指示を終了 <br><br>else { //Cookie なしの指示を開始 <br>echo "<html> <br><head> <br><Title>Rafi の Cookie の例

< body>サイト登録はこちら
";
} //Cookie なしの説明を終了します
?>

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

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

echo"
wang example


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

/update 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 がない場合の指示を開始します
echo "

Rafi の Cookie の例
Cookie を使用しない手順の終了

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


登録サイト

サイトを登録 ">
<表幅=90% align=center>
ユーザー名:maxlength= 20>
姓:maxlength= 40>
メールアドレス:maxlength= 40>
< /td>

情報を分析する
## ###########################reg1.php################# ## ################
if ($FirstName と $LastName と $email)
{
mysql_connect() or die ("データベースへの接続の問題") ;
$query="select * from info where FirstName='$LastName' and email='$email'"; $ r=mysql_fetch_array($result);
$count=$r["count"];

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

user $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 はすでに存在します。既存の
情報を使用しています。

";  
echo "

メインページに戻る";  
} 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 はすでに存在します。既存の情報を使用します。

";  
echo "

メインページに戻る";
場合は、mysql に追加を追加し、Cookie を設定します
注意: いつでも、setcookie は、ログイン情報を取得したかどうかを確認する前に、サーバーに送信されます

###### #############################################
---進む翻訳、有不一致之处、请qianjinok@china.com-------

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/316640.html技術記事 PHP ユーザは、この教則で南 cookie の部分を指摘し、私たちは PHP 処理 cookie を利用して、可能な限り個別に cookie の一部のアプリケーションを解読することにしました。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。