ホームページ バックエンド開発 PHPチュートリアル 動的 Web ページ テクノロジー Cookie とセッションの PHP 分析_PHP チュートリアル

動的 Web ページ テクノロジー Cookie とセッションの PHP 分析_PHP チュートリアル

Jul 13, 2016 pm 05:37 PM
cookie php session について 分析する 動的 そして テクノロジー ウェブページ

1. PHP COOKIE
Cookieは、リモートブラウザ側にデータを保存し、ユーザーの追跡と識別に使用する仕組みです。
PHP は http プロトコルのヘッダー情報で Cookie を送信するため、他の情報がブラウザーに出力される前に setcookie() 関数を呼び出す必要があります。これは header() 関数の制限と同様です。
1.1 Cookie を設定する:
setcookie() または setrawcookie() 関数を使用して Cookie を設定できます。 http ヘッダーをクライアントに直接送信することによっても設定できます。
1.1.1 setcookie() 関数を使用して Cookie を設定します。
bool setcookie ( string name [, string value [, intexpired [, string path [, string domain [, bool secure [, bool httponly]]]]])
name: Cookie 変数名
value: Cookie 変数値
Expired: 有効期間の終了、
パス: 有効なディレクトリ、
ドメイン: 有効なドメイン名、トップレベルドメインのみ
secure : 値が 1 の場合、Cookie は https 接続でのみ有効になります。デフォルト値 0 の場合、http と https の両方が使用可能です。
$value = からのもの。どこか;
setcookie("TestCookie ", $value); /* 簡単なクッキー設定*/
setcookie("TestCookie", $value, time()+3600) /* 有効期間は 1 時間*/
setcookie(" TestCookie", $value, time( )+3600, "/~rasmus/", ".example.com", 1); /* 有効なディレクトリ/~rasmus、有効なドメイン名 example.com とそのすべてのサブドメイン */
?>
複数の cookie を設定する 変数: setcookie(var[a],value); は変数を表すために配列を使用しますが、その添え字には引用符は必要ありません。このように $_COOKIE['var'][ 'a'] を使用して COOKIE 変数を読み取ります。
1.1.2. header() を使用して Cookie を設定します。
header("Set-Cookie: name=$value[;path=$path[;domain=xxx.com[; ...]]");
以下のパラメータ setcookie 関数のパラメータは上記と同じです。例:
$value = どこかからの何か;
header("Set-Cookie:name=$value") ;
1.2 Cookie の読み取り:
PHP 組み込みのスーパーグローバルを直接使用します。 変数 $_COOKIE はブラウザー側で Cookie を読み取ることができます。
上の例では、Cookie "TestCookie" を読み取ります:
print $ _COOKIE[TestCookie];
COOKIE は出力されましたか?!
1.3 Cookie を削除します
有効時間を現在時刻よりも小さく設定し、値を空に設定するだけです。例:
setcookie("name","")。 ,time()-1);
header() を同様に使用します。
1.4 よくある質問を解決しました:
1) setcookie() を使用するとエラー メッセージが表示されます。これは、setcookie() を呼び出す前に出力またはスペースがあることが原因である可能性があります。また、ドキュメントが他の文字セットから変換されており、ドキュメントの末尾に BOM 署名がある可能性もあります (つまり、ファイル内に非表示の BOM 文字をコンテンツに追加すること)。この状況は、ob_start() 関数を使用して処理することもできます
2) $_COOKIE は、magic_quotes_gpc の影響を受けるため、自動的にエスケープされる可能性があります
3) それを使用する場合、ユーザーが次のことを行うかどうかをテストする必要があります。 Cookie をサポートします

1.5 Cookie の動作メカニズム:
一部の学習者はより衝動的で、原則を勉強する時間がないため、後から配置します
a) サーバーが設定します。応答とともに http Set-Cookie ヘッダーを送信することでクライアントに Cookie を送信します (複数の Cookie には複数のヘッダーが必要です)
b) クライアントは自動的に http をサーバーに送信し、サーバーは Cookie ヘッダーを受信して​​読み取ります。
HTTP/1 .x 200 OK
X-Powered-By: PHP/5.2.1
Set-Cookie: TestCookie=どこかからのもの; path=/
Expires: Thu, 19 Nov 2007 18:52:00 GMT
キャッシュ制御: いいえ-store、no-cache、must-revalidate、post-check=0、pre-check=0
Pragma: no-cache
Content-type: text/html
この行を受け取った後、Cookie関数を実装します
。 -Cookie: TestCookie=どこかからのもの; path=/
ブラウザはクライアントのディスク上に Cookie ファイルを作成し、そこに書き込みます:
TestCookie=どこかからのもの;
/
この行は setcookie(TestCookie,これは、header(Set-Cookie: TestCookie=something from somewhere; path=/); を使用した結果でもあります。
< ;!--[endif]-->
2。 Session
session は、有効期限が 0 に設定された Cookie と、サーバー側でセッション ID と呼ばれる一意の識別子 (長い文字列) を使用します。 いくつかのセッション ファイルを同期的に生成します (セッションのストレージ タイプを自分で定義できます)。 Web アプリケーションはこれらのセッションに関連するデータを保存し、ユーザーのページ間でデータを転送できるようにします。
Web サイトを訪問する訪問者には、一意の識別子、いわゆるセッション ID が割り当てられます。これは、クライアント側の Cookie に保存されるか、URL 経由で渡されます。
セッションのサポートにより、ユーザーは任意の数の変数を登録し、リクエストごとに変数を予約できます。訪問者が Web サイトにアクセスすると、PHP は特定のセッション ID がリクエストで送信されたかどうかを自動的に (session.auto_start が 1 に設定されている場合)、またはユーザーがリクエストしたときに (session_start() によって明示的に呼び出されるか、session_register() によって暗黙的にチェックされます。 ))。その場合、以前に保存された環境が再作成されます。
2.1 セッションIDの送信
2.1.1 CookieによるセッションIDの送信
session_start()を使用してセッションファイルを生成する際、サーバーはデフォルト値のPHPSESSIDでセッションIDのハッシュ値とセッション名を生成します。送信される変数は (デフォルトでは) PHPSESSID (セッション名) であり、サーバーはこの Cookie を通じてクライアントと通信します。変数は PHP によって内部的にシリアル化され、マシン上のテキスト ファイルに保存されます。デフォルトでは変数名が PHPSESSID であるクライアントのクーリーと対話します。つまり、サーバーは http ヘッダーを自動的に送信します: header(Set-Cookie. : session_name()=session_id(); path=/) ;
つまり、setcookie(session_name(),session_id());
このページから新しいページにジャンプして session_start() を呼び出すと、PHP はセッションをチェックします指定された ID に関連付けられたサーバー側に保存されているデータが見つからない場合は、新しいデータセットを作成します。
2.1.2 URL を介してセッション ID を送信します。
ブラウザーの Cookie はユーザーが Cookie の使用を禁止している場合にのみ使用されます。すでに汎用であり、セキュリティ上の理由から、このメソッドは必要ありません
、セッションは POST 値を介して渡すこともできます。
2.2 session の基本的な使用例
// page1.php
session_start();
echo ページ #1;
/* へようこそセッション変数を作成し、セッション変数に値を割り当てます*/
$_SESSION[favcolor ] = green;
$_SESSION[animal] = cat;
$_SESSION[time] = time();
// クライアントが Cookie を使用する場合、セッションは page2.php に直接渡すことができます
echo
< ;a href="page2.php">page 2
;
// クライアントが Cookie を無効にしている場合
echo
page 2;
/*
デフォルトの php5.2.1 では、SID は Cookie が書き込まれるときにのみ値を持ちます。セッション
に対応するCookieがすでに存在する場合、SIDは(未定義)空になります
*/
?>
// page2.php
session_start();
print $_SESSION[animal]; // 単一のセッションを出力します
var_dump($_SESSION); // php
?>から渡されたセッション値を出力します
2.3 ページのキャッシュを制御するには、セッション関数を使用します。 Web ページがクライアントにキャッシュされているかどうかを確認したり、キャッシュの有効期間を設定したりできます。たとえば、一部の Web ページの機密コンテンツがローカルにキャッシュされている場合は、ローカル キャッシュを開いて参照できます。
session_cache_limiter (プライベート) を使用すると、ページのクライアント キャッシュを制御できます。これは session_start() を呼び出す前に行う必要があります。
その他のパラメータについては、http://blog.chinaunix でクライアント キャッシュ コントロールを参照してください。 .net/u/27731/showart.php?id=258087.
session_cache_expire(int); 単位を使用して、クライアントのキャッシュ時間を制御します。これは session_start() の前に呼び出す必要があります。
これは単なるメソッドです。セッションを使用するときにキャッシュを制御することもできます。
2.4 セッションの削除には 3 つの手順が必要です。
< // 最初の手順:
SetCookie (session_name (), time () -3600); を使用するサーバー側セッション ファイル: // ステップ 2: 実際のセッションを削除します:
$_Saction: = array (); 現時点での最良の方法は、このとき、関数 bool session_set_save_handler (callback open、callback close、callback read、callback write、callback destroy、callback gc) がこの問題の解決策です。
この関数で使用される 6 つの関数は次のとおりです。以下のように:
1. bool open() はセッション ストレージ メカニズムを開くために使用されます。
2. bool close() はセッション ストレージ操作を閉じます。
3. mixde read() はストレージからセッション データをロードするときに使用されます。 4. bool write() は、指定されたセッション ID のすべてのデータをストレージに書き込みます
5. bool destroy() は、指定されたセッション ID に関連付けられたデータを破棄します
6. ストレージ システムの bool gc() データはガベージ コレクションされます
例については、PHP マニュアルの session_set_save_handler() 関数を参照してください。
クラスを使用して処理する場合は、
session_set_save_handler(
array(className,
) を使用します。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/486616.html技術記事 1. PHP の COOKIE クッキーは、リモートのブラウザ側にデータを保存し、それを使用してユーザーを追跡および識別するメカニズムです。 PHP は http プロトコルのヘッダー情報で Cookie を送信するため、setcookie() 関数は...

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

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.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

See all articles