ホームページ バックエンド開発 PHPチュートリアル PHP での Cookie の使用に関するガイド

PHP での Cookie の使用に関するガイド

Jul 29, 2016 am 08:36 AM

まとめ
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> create database users;
Query OK, 1 row according to (0.06 sec)
mysql> use users;
データベースが変更されました
l>create table info (FirstName varchar(20) , LastName varchar (40), email varchar(40), count varchar(3));
クエリ OK、影響を受ける行数は 0 (0.05 秒)
次に、データベースに対して Cookie をチェックするための php ページを構築します。
PHP は識別可能な Cookie を対応する変数に変換できるため、「myCookies」という名前の変数を確認できます:
if (isset($myCookies)) { // Cookie がすでに存在する場合
……
} else { //If Cookie は存在しません
……
}
?>
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 */


First Name:
Last Name:


ユーザーが登録簿に記入した情報.php 登録ページが送信されます regOK.php に送信されます:
/* regOK.php */
if ($FirstName and $LastName and $email) {
…//ユーザーが存在するかデータベースにクエリします
}
}else{
…//エラー処理
}
上記のプログラムの流れは以下の通りです:
まず必要な情報がすべて入力されているかどうかを確認し、入力されていない場合は戻って再入力します
すべての情報が入力されていれば、まず、データベースからユーザーのログイン詳細を取得します
mysql_connect() または die ("データベースへの接続エラー!")
$query="select * from info where FirstName='$FirstName' and LastName='$LastName' and email= '$email'";
$result = mysql_db_query(" users", $query);
$info=mysql_fetch_array($result);
$count=$info["count"];
データベースにそのようなものがあるかどうかを確認しますユーザーの場合、古い情報を指定し、現在の情報を使用します。情報は新しい Cookie を作成します。同じユーザーがデータベース ログインを持っていない場合は、新しいデータベース ログインを作成し、新しい Cookie を作成します。
ここで、isset() 関数を使用して、ユーザーがカウンターを持っているかどうかを確認します。持っている場合は、カウンターが増加し、新しい Cookie が作成されます。 &'.$LastName.'&' .$email.'&'.$count;
SetCookie ("myCookies",$CookieString, time()+3600);
ユーザーカウンターがない場合は、mysql にレコードを追加します。そして Cookie を設定します
注: setcookie 関数を呼び出す前にブラウザにデータを出力しないでください。そうしないと、エラーが発生します。
クロスドメインCookieの実装方法は?
Cookieの仕様によれば、Cookieは1つのドメイン名に対してのみ使用できるため、ブラウザでドメイン名にCookieを設定すると、そのCookieは他のドメインに対しては無効になります。名前。
クロスドメイン Cookie の実装計画について話しましょう:
ステップ 1: プリセット スクリプトを作成する
次のコードをプリセット スクリプトに追加します (または、すべてのスクリプトの前に関数に表示します)。
/*GET変数が設定されていてCookie変数と異なる場合
*get変数を使用(Cookie更新)
*/
global $HTTP_COOKIE_VARS, $HTTP_GET_VARS
if (isset($s; 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'];
このコードが実行されると、グローバル変数「sessionid」がスクリプトで使用できるようになります。ユーザーの Cookie に sessionid 値、または GET リクエストを通じて送信された sessionid 値が保存されます。
ステップ 2: すべてのクロスドメイン名参照に変数を使用する
グローバル構成ファイルを作成して、切り替え可能なドメイン名の基本的な参照形式を保存します。たとえば、domain1.com とdomain2.com がある場合、次の設定になります。
$domains['domain1'] = "http://www.domain1.com/-$sessionid-"; Domains ['domain2'] = "http://www.domain2.com/-$sessionid-"; このコードを ['domain2'], "/contact/?email=yes">ここに書きます。 ";
?>
上記のコードは次の出力を生成します:
ここをクリックしてください ここではURLにセッションIDが挿入されています。
ステップ 3: Apache を構成する
次に、この URL を書き換えるように Apache を構成しましょう。
私たちは
http://www.domain2.com/-66543afe6543asdf6asd-/contact/ を次のように変更する必要があります:
http://www.domain2.com/contact/?sessi
そしてこの URL:
http: / /www.domain2.com/-66543afe6543asdf6asd-/contact/?email=yes
次のようになります:
http://www.domain2.com/contact/?email=yes&sessi
上記の要件を達成するには、単純にconfigure 2台の仮想サーバーをdomain1とdomain2として次のように動作します:

DocumentRoot /usr/local/www/domain1
ServerName www.domain1.com
RewriteEngine
RewriteRule ^/- (.*)-(. * .
サーバー名 www.domain2.com
RewriteEngine on
RewriteRule ^/-(.*)-(.*?.*)$ $2&sessi
RewriteRule ^/-(.*)-(.*)$ $2?sessi

これらの書き換えルールは、上記の 2 つの URL 書き換え要件を実装します。

以上、Cookie を削除できるかどうかなど、PHP で Cookie を使用するためのガイドを紹介しました。PHP チュートリアルに興味のある友人の参考になれば幸いです。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

フレームワークセキュリティ機能:脆弱性から保護します。 フレームワークセキュリティ機能:脆弱性から保護します。 Mar 28, 2025 pm 05:11 PM

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? Apr 01, 2025 pm 03:12 PM

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

See all articles