動的 Web ページ テクノロジー Cookie とセッションの PHP 分析_PHP チュートリアル
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,
) を使用します。

まだ人気があるのは、使いやすさ、柔軟性、強力なエコシステムです。 1)使いやすさとシンプルな構文により、初心者にとって最初の選択肢になります。 2)Web開発、HTTP要求とデータベースとの優れた相互作用と密接に統合されています。 3)巨大なエコシステムは、豊富なツールとライブラリを提供します。 4)アクティブなコミュニティとオープンソースの性質は、それらを新しいニーズとテクノロジーの傾向に適応させます。

PHPとPythonはどちらも、Web開発、データ処理、自動化タスクで広く使用されている高レベルのプログラミング言語です。 1.PHPは、ダイナミックウェブサイトとコンテンツ管理システムの構築によく使用されますが、PythonはWebフレームワークとデータサイエンスの構築に使用されることがよくあります。 2.PHPはエコーを使用してコンテンツを出力し、Pythonは印刷を使用します。 3.両方ともオブジェクト指向プログラミングをサポートしますが、構文とキーワードは異なります。 4。PHPは弱いタイプの変換をサポートしますが、Pythonはより厳しくなります。 5. PHPパフォーマンスの最適化には、Opcacheおよび非同期プログラミングの使用が含まれますが、PythonはCprofileおよび非同期プログラミングを使用します。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
