ホームページ php教程 php手册 PHP における Cookie のガイド

PHP における Cookie のガイド

Jun 21, 2016 am 09:14 AM
cookie http quot

クッキー|クッキー

概要

Cookie は、サーバーまたはスクリプトが HTTP プロトコルの下でクライアントのワークステーション上の情報を維持するための方法です。 Cookie は、Web サーバーによってユーザーのブラウザに保存される小さなファイルであり、ユーザーに関する情報 (識別番号、パスワード、ユーザーが Web サイトで購入する方法、ユーザーがサイトを訪問した回数など) が含まれる場合があります。ユーザーがサーバーに接続するたびに、Web サイトは Cookie 情報にアクセスできます。

Cookieの設定方法は?

PHP では、setcookie 関数を使用して Cookie を設定できます。 Cookie は HTTP ヘッダーの一部であるため、コンテンツがブラウザに送信される前に Cookie 関数を設定する必要があります。この制限は header() 関数と同じです。クライアントから渡された Cookie はすべて、自動的に PHP 変数に変換されます。 PHP は情報ヘッダーを取得して分析し、Cookie 名を抽出して変数に変換します。したがって、setcookie("mycookie", "Cookies") などの Cookie を設定すると、php は値 "Cookies" を持つ $mycookie という名前の変数を自動的に生成します。

setcookie 関数の構文を見てみましょう:

init setcookie(string CookieName, string CookieValue, int CookieExpireTime, path, domain, int secure);

パラメータの説明:

PATH : Web サーバー上のディレクトリのデフォルトは、呼び出されたページが存在するディレクトリです。

DOMAIN: Cookie が使用できるドメイン名。デフォルトは、呼び出されたページのドメイン名です。このドメイン名には 2 つの「.」が含まれている必要があるため、トップレベル ドメイン名を指定する場合は、「.mydomain.com」を使用する必要があります

SECURE: 「1」に設定すると、Cookie はユーザーのブラウザによって使用されます。 安全であると考えられるサーバーによって記憶されます。

Cookie の使用例

 ユーザーの ID を自動的に識別し、関連する操作を実行する登録を必要とするサイトがあるとします。登録ユーザーの場合は、情報を送信します。登録ユーザーでない場合は、登録ページへのリンクが表示されます。

上記の要件に従って、まず登録ユーザー情報(姓名、メールアドレス、来店カウンター)を保存するデータベースを作成します。

まず次の手順に従ってテーブルを作成します:

mysql> データベース ユーザーを作成します。
クエリ OK、1 行が影響を受けます (0.06 秒)
mysql> use users ;
 データベースが変更されました
mysql> テーブル情報を作成します (FirstName varchar(20)、LastName varchar(40)、count varchar(3)); OK、影響を受ける行は 0 です (0.05 秒)



次に、データベースに対して Cookie をチェックするための PHP ページを構築します。

PHP は識別可能な Cookie を対応する変数に変換できるため、「myCookies」という名前の変数を確認できます。 ……
} else { //Cookieが存在しない場合
……
}
?>

When Cookie 存在する場合、次の手順を実行します:

最初に Cookie 値を取得し、explode 関数を使用してそれをさまざまな変数に分析し、カウンターを増やし、新しい Cookie を設定します:

$info =explode("& ", $myCookies);
…
$count++;
$CookieString=$FirstName.'&'.$LastName.'&'.$email.'&'.$ count ;
SetCookie ("myCookies",$CookieString, time()+3600); //Cookie を設定します

次に、HTML ステートメントを使用してユーザー情報を出力します。

最後に、新しいカウンター値でデータベースを更新します。

この Cookie が存在しない場合は、登録ページ (register.php) へのリンクが表示されます。

以下の register.php はユーザー登録ページです:

/* register.php */



名: < input type="text" name="FirstName">
姓:
<input type="submit" value="登録">
  </form>

 register.php 登録ページでユーザーが入力した情報は、regOK.php に送信されます:

/* regOK.php */
if ($FirstName および $ LastName と $email) {
…//ユーザーがデータベースに存在するかどうかをクエリします
}
}else{
…//エラー処理
}




上記のプログラムの流れは次のとおりです:

最初に必要な情報がすべて入力されているかどうかを確認します。入力されていない場合は、戻って再入力します

すべての情報が入力されている場合は、まずユーザーを取得します。データベースからのログイン詳細

mysql_connect() または die ("データベースへの接続エラー!");
$query="select * from info where FirstName='$FirstName' and LastName=' $LastName' および email='$email'";
 $result = mysql_db_query("users", $query);
$info=mysql_fetch_array($result);
$count=$info["count"];

そのようなユーザーが存在するかどうかを確認し、存在する場合は古い情報を指定し、現在の情報で新しい Cookie を作成します。同じユーザーのデータベース ログインにそのようなユーザーは存在しないため、新しいデータベース ログインを作成し、新しい Cookie を作成します。

次に isset() 関数を使用して、ユーザーがカウンターを持っているかどうかを確認し、持っている場合はカウンターが増分され、新しい Cookie が作成されます。
$CookieString=$ FirstName.'&'.$LastName.'&'.$email.'&'.$count;
SetCookie ("myCookies",$CookieString, time()+ 3600);

A ユーザー カウンターでない場合は、mysql にレコードを追加し、Cookie を設定します

注: setcookie 関数を呼び出す前にブラウザにデータを出力しないでください。そうしないと、エラーが発生します。

クロスドメインCookieを実装するにはどうすればよいですか?

Cookieの仕様によれば、Cookieは1つのドメイン名に対してのみ使用できます。したがって、ブラウザでCookieがドメイン名に対して設定されている場合、そのCookieは無効になります。他のドメイン名。

それでは、クロスドメイン Cookie の実装計画について話しましょう:

ステップ 1: プリセット スクリプトを作成する

次のコードをプリセット スクリプトに追加します (または、すべてのスクリプトの前に関数に表示します)。

/*GET変数が設定されていてCookie変数と異なる場合
*get変数を使用(Cookie更新)
*/
global $HTTP_COOKIE_VARS, $HTTP_GET_VARS
if (isset($; sessionid) && isset($HTTP_GET_VARS['sessionid']) && ($HTTP_COOKIE_VARS['sessionid'] != $HTTP_GET_VARS['sessionid'])) {
SetCookie('sessionid', $HTTP_GET_VARS['sessionid'], 0 , ' /', '');
$HTTP_COOKIE_VARS['sessionid'] = $HTTP_GET_VARS['sessionid'];
$HTTP_GET_VARS['sessionid']; このコードを実行すると、スクリプトで利用できるようになります。ユーザーの Cookie に sessionid 値、または GET リクエストを通じて送信された sessionid 値が保存されます。

ステップ 2: すべてのクロスドメイン名参照に変数を使用する

切り替え可能なドメイン名の基本的な参照形式を保存するグローバル構成ファイルを作成します。たとえば、domain1.com と domain2.com がある場合、次の設定になります。

$domains['domain1'] = "http://www.domain1.com/-$sessionid-"; $ Domains['domain2'] = "http://www.domain2.com/-$sessionid-";


次のコードを書きます:

echo "Click こちら</a>でお問い合わせください。";
?>

上記のコードは次の出力を生成します:

Click
こちら</a>にお問い合わせください

ここでは URL に sessionid が挿入されています。

ステップ 3: Apache を構成する

次に、この URL を書き換えるように Apache を構成しましょう。 http://www.ndsain2.com/-66543afe6543asdf6asd-
をこれに変える必要があります:
http://www.duin2.com/Contact/?Sessionid=6543ASDF6ASD そしてこの URL:
http:// www.domain2.com/-66543afe6543asdf6asd-/contact/?email=yes
次のようになります:
http://www.domain2.com/contact/?email=yes&sessionid=66543afe6543asdf6asd

上記を実現するには To要件を満たしている場合は、次のように 2 つの仮想サーバーをドメイン 1 とドメイン 2 として構成するだけです。


DocumentRoot /usr/local/www/domain1
ServerName www.domain1.com
RewriteEngine on
RewriteRule ^/ - (. *)-(.*?.*)$ $2&sessionid=$1 [L, R, QSA ]
RewriteRule ^/-(.*)-(.*)$ $2?sessionid=$1 [L, R, QSA ]
</VirtualHost>


DocumentRoot /usr/local/www/domain2
ServerName www.domain2.com
RewriteEngine on
RewriteRule ^/ -(.*)-(.*?.*)$ $2&sessionid =$1 [L, R, QSA]
RewriteRule ^/-(.*)-(.*)$ $2?sessionid=$1 [L, R, QSA]


これらの書き換えられたルール 上記2つのURL書き換え要件が実装されます。








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

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

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Cookie はどこに保存されますか? Cookie はどこに保存されますか? Dec 20, 2023 pm 03:07 PM

Cookie は通常、ブラウザの Cookie フォルダに保存されます。ブラウザの Cookie ファイルは通常、バイナリ形式または SQLite 形式で保存されます。Cookie ファイルを直接開くと、文字化けしたり判読できないコンテンツが表示される可能性があるため、使用することをお勧めします。 Cookie を表示および管理するためにブラウザによって提供される Cookie 管理インターフェイス。

コンピューター上の Cookie はどこにありますか? コンピューター上の Cookie はどこにありますか? Dec 22, 2023 pm 03:46 PM

コンピュータ上の Cookie は、使用するブラウザとオペレーティング システムに応じて、ブラウザ上の特定の場所に保存されます。 1. Google Chrome、C:\Users\YourUsername\AppData\Local\Google\Chrome\User Data\Default \Cookies に保存されます。等

モバイル Cookie はどこにありますか? モバイル Cookie はどこにありますか? Dec 22, 2023 pm 03:40 PM

携帯電話上の Cookie は、モバイル デバイスのブラウザ アプリケーションに保存されます: 1. iOS デバイスでは、Cookie は Safari ブラウザの [設定] -> Safari -> [詳細] -> [Web サイト データ] に保存されます; 2. Android デバイスでは、Cookie は保存されますChromeブラウザの設定→サイト設定→Cookieなど

Web ページのリダイレクトの一般的なアプリケーション シナリオを理解し、HTTP 301 ステータス コードを理解する Web ページのリダイレクトの一般的なアプリケーション シナリオを理解し、HTTP 301 ステータス コードを理解する Feb 18, 2024 pm 08:41 PM

HTTP 301 ステータス コードの意味を理解する: Web ページ リダイレクトの一般的なアプリケーション シナリオ インターネットの急速な発展に伴い、Web ページの操作に対する人々の要求はますます高くなっています。 Web デザインの分野では、Web ページのリダイレクトは一般的かつ重要なテクノロジであり、HTTP 301 ステータス コードによって実装されます。この記事では、HTTP 301 ステータス コードの意味と、Web ページ リダイレクトにおける一般的なアプリケーション シナリオについて説明します。 HTTP301 ステータス コードは、永続的なリダイレクト (PermanentRedirect) を指します。サーバーがクライアントのメッセージを受信すると、

ブラウザの Cookie が保存される場所の詳細な説明 ブラウザの Cookie が保存される場所の詳細な説明 Jan 19, 2024 am 09:15 AM

インターネットの普及により、ブラウザを使用してインターネットを閲覧することが生活様式になりました。ブラウザを日常的に使用する中で、オンラインショッピング、ソーシャルネットワーキング、電子メールなど、アカウントのパスワードを入力する必要がある場面に遭遇することがよくあります。この情報は、次回アクセスするときに再度入力する必要がないようにブラウザによって記録される必要がありますが、このような場合に Cookie が役に立ちます。クッキーとは何ですか? Cookie とは、サーバーからユーザーのブラウザに送信され、ローカルに保存される小さなデータ ファイルを指し、一部の Web サイトでのユーザーの行動が含まれています。

HTTP 200 OK: 成功した応答の意味と目的を理解する HTTP 200 OK: 成功した応答の意味と目的を理解する Dec 26, 2023 am 10:25 AM

HTTP ステータス コード 200: 成功した応答の意味と目的を調べる HTTP ステータス コードは、サーバーの応答のステータスを示すために使用される数値コードです。このうち、ステータス コード 200 は、リクエストがサーバーによって正常に処理されたことを示します。この記事では、HTTP ステータス コード 200 の具体的な意味と使用法について説明します。まず、HTTP ステータス コードの分類を理解しましょう。ステータス コードは、1xx、2xx、3xx、4xx、5xx の 5 つのカテゴリに分類されます。このうち、2xx は成功応答を示します。 200 は 2xx で最も一般的なステータス コードです

Cookie 設定に関するよくある質問と解決策 Cookie 設定に関するよくある質問と解決策 Jan 19, 2024 am 09:08 AM

Cookie 設定に関する一般的な問題と解決策、具体的なコード例が必要です インターネットの発展に伴い、Cookie は最も一般的な従来技術の 1 つとして、Web サイトやアプリケーションで広く使用されています。簡単に言うと、Cookie はユーザーのコンピュータに保存されるデータ ファイルで、ログイン名、ショッピング カートの内容、Web サイトの設定などを含むユーザーの情報を Web サイトに保存するために使用できます。 Cookie は開発者にとって不可欠なツールですが、同時に Cookie の設定が頻繁に必要になります。

C++ を使用して HTTP ストリーミングを実装するにはどうすればよいですか? C++ を使用して HTTP ストリーミングを実装するにはどうすればよいですか? May 31, 2024 am 11:06 AM

C++ で HTTP ストリーミングを実装するにはどうすればよいですか? Boost.Asio と asiohttps クライアント ライブラリを使用して、SSL ストリーム ソケットを作成します。サーバーに接続し、HTTP リクエストを送信します。 HTTP 応答ヘッダーを受信して​​出力します。 HTTP 応答本文を受信して​​出力します。

See all articles