PHPにおけるmagic_quotes_gpcとmagic_quotes_runtimeの違い、機能、使用法
PHP
におけるmagic_quotes_gpcとmagic_quotes_runtimeの違い、機能、使用法
マジック クオートは、$_GET、$_POST、$_COOKIE が渡されたときに有効になります。
1.
条件: magic_quotes_gpc=off
データベースに書き込まれる文字列は、いかなる方法でもフィルタリングされていません。データベースから読み取られた文字列は一切処理されません。
データ: ?$data="snow"''sun"; (snow と sun の間には 4 つの連続した単一引用符があります)。
操作: 文字列を書き込みます: "snow"''sun" データベース、
結果: SQL ステートメント エラーが発生し、mysql は SQL ステートメントを正常に完了できず、データベースへの書き込みに失敗しました。
データベース保存形式: データなし。
出力データ形式: データなし。
注: 未処理の一重引用符は、データベースに書き込まれるときに SQL ステートメントでエラーを引き起こします。
2.
条件: magic_quotes_gpc=off
データベースに書き込まれた文字列は、関数 addlashes() によって処理されます。データベースから読み取られた文字列は一切処理されません。
データ: ?$data="snow"''sun"; (snow と sun の間には 4 つの連続した単一引用符があります)。
操作: 文字列を書き込みます: "snow"''sun" データベース、
結果: SQL ステートメントが正常に実行され、データがデータベースに正常に書き込まれました。
データベース保存形式: Snow"''sun (入力と同じ)
出力データ形式: Snow"''sun (同じinput) )
説明: addslashes() 関数は、SQL ステートメントが正常に実行できるように単一引用符をエスケープ文字に変換します。
ただし、データベースはデータとして保存されません。 「太陽」と「それは雪ではありません」私たちが想像していた太陽
3.
条件: magic_quotes_gpc=on
データベースに書き込まれた文字列はいかなる方法でも処理されません 🎜>データ: ?$data。 =”snow””sun”; (snow と sun の間には 4 つの連続した単一引用符があります)。
操作: 文字列:”snow”''sun” をデータベースに書き込みます。
結果: SQL ステートメントは正常に実行され、データはデータベースに正常に書き込まれました。
データベース保存形式: Snow"'sun (入力と同じ)
出力データ形式: Snow"'sun (入力と同じ)
説明: magic_quotes_gpc=on は、SQL ステートメントが正常に実行できるように単一引用符をエスケープ文字に変換します。
ただし、データベースには、私たちが想像したものではなく、snow"''sun が保存されます。 ''''太陽。
4.
条件: magic_quotes_gpc=on
データベースに書き込まれた文字列は、関数 addlashes() によって処理されます。データベースから読み取られた文字列は一切処理されません。
データ: ?$data="snow"''sun"; (snow と sun の間には 4 つの連続した単一引用符があります)。
操作: 文字列を書き込みます: "snow"''sun" データベース、
結果: SQL ステートメントが正常に実行され、データがデータベースに正常に書き込まれました。
データベースの保存形式: Snow''''sun (エスケープ文字を追加)
出力データ形式: Snow''''sun (エスケープ文字が追加されました)
説明: magic_quotes_gpc=on は、SQL ステートメントが正常に実行できるように、一重引用符を 'エスケープ文字に変換します。
addslashes は、データベースに書き込もうとしている一重引用符を ' に変換します。
データベースにデータとして書き込まれ、データベースは Snow''''sun
を保存します。 概要は次のとおりです。
1. magic_quotes_gpc=on の場合、
は入力できません。文字列データに対して
addslashes() およびtripslashes() 操作を実行すると、データは正常に表示されます。
この時点で入力データに対してaddslashes()を実行する場合、
出力時に余分なバックスラッシュを削除するにはstripslashes()を使用する必要があります。
2. magic_quotes_gpc=off
の場合、addslashes() を使用して入力データを処理する必要がありますが、addslashes() は出力
をフォーマットするために使用する必要はありません。バックスラッシュをまとめてください。 データベースへの書き込みは、mysql が SQL ステートメントの実行を完了するのに役立つだけです。
補足:
magic_quotes_gpc のスコープは次のとおりです: WEB クライアント サーバー; アクション時間: スクリプトの実行時など、リクエストの開始時。
magic_quotes_runtime スコープ: ファイルから読み取られたデータ、exec() の実行結果、または SQL クエリから取得されたデータ; アクション時間: 実行状態で生成されたデータにスクリプトがアクセスするたび
=== === ====== magic_quotes_gpc と magic_quotes_runtime の違いと使い方 =============
PHP には、データを引用するのに便利な 2 つのマジック参照関数 magic_quotes_gpc と magic_quotes_runtime が用意されています。この関数が php.ini で ON に設定されていると、一重引用符 ' と二重引用符 ' およびバックスラッシュが出現したときに、引用符で囲んだデータにバックスラッシュが自動的に追加され、シンボルが自動的に変換され、異なるバージョンでもデータ操作が正しく実行されるようになります。 PHP または別のサーバー構成では、いくつかの magic_quotes_gpc と magic_quotes_runtime がオンに設定され、いくつかはオフに設定されるため、作成するプログラムは両方の条件に準拠する必要があります。 次に、magic_quotes_gpc と magic_quotes_runtime の 2 つの関数の違いは何ですか?以下の説明:
magic_quotes_gpc
スコープ: WEB クライアント サーバー;
アクション時間: リクエストは、たとえばスクリプトの実行時に開始されます。アクションの範囲: ファイルから読み取られたデータ、exec() の実行結果、または SQL クエリから取得されたデータ。
アクションの時間: スクリプトが実行状態で生成されたデータにアクセスするたび。
つまり
magic_quotes_gpc の設定値は、Get/Post/Cookies を通じて取得されるデータに影響します
magic_quotes_runtime の設定値は、ファイルから読み取られるデータまたはデータベース クエリから取得されるデータに影響します
例:
コンテンツをクリップボードにコピー
コード:
/* これらの記号は、magic_quotes_gpc が有効でない場合に入力します。の場合、バックスラッシュはエスケープされません*/
echo POST で渡される値は次のとおりです: ,$_POST[str],
;
if( get_magic_quotes_gpc()) { / / magic_quotes_gpc がオンになっているかどうかを確認します。オンになっていない場合は、addslashes を使用してエスケープします。
$str = addlashes($_POST[str]); 🎜>}
echo エスケープされたバージョンは次のとおりです: ,$str,
;
$sql = "INSERT INTO lastnames (lastname) VALUES ($str )";
//========================================== === ===========================================
/ /-- ---magic_quotes_gpc はエスケープのみを行います: Get/Post/Cookies を通じて取得されたデータ
//-----magic_quotes_runtime はエスケープします: ファイルから読み取られたデータまたは exec() の実行結果、または SQL クエリから取得されたデータ
//======================================== ======= =========================================
$data = implode(file (try.php)); // テストのために文字 "" を書き込みます。
echo これは try.php のデータです。
if (get_magic_quotes_runtime( )) {
$data = $data;
エコーは system.$data;
によってエスケープされます。
エコーは addslashes.$data = addlashes($ data) によってエスケープされます。
$sql = "INSERT INTO lastnames (lastname) VALUES ($data)";
echo
SQL ステートメントは次のとおりです:
入力はエスケープされていますが、余分なバックスラッシュがあります。元のデータを読み取りたい場合は、stripslashes() を使用してバックスラッシュを削除します
//-- -stripslashes() とaddslashes() は逆の効果があります
? >
最も重要な違いは、上記の 2 点です。対象となる処理オブジェクトが異なります
magic_quotes_gpc の設定値は、Get/Post/Cookies を通じて取得されたデータに影響します
設定値magic_quotes_runtime の値は、ファイルから読み取ったデータ、またはデータベース クエリから取得したデータに影響します
ちなみに、関連付ける関数をいくつか示します:
set_magic_quotes_runtime():
magic_quotes_runtime を設定する値は 0=off、1=on。magic_quotes_runtime は echo phpinfo(); で確認できます。0=off.1=on。 >get_magic_quotes_runtime():
magic_quotes_runtime 値を表示します。 0=オフ、1=オン。
set_magic_quotes_gpc() 関数がないことに注意してください。つまり、magic_quotes_gpc の値をプログラムで設定することはできません。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











ログイン画面に「組織から PIN の変更を求められています」というメッセージが表示されます。これは、個人のデバイスを制御できる組織ベースのアカウント設定を使用しているコンピューターで PIN の有効期限の制限に達した場合に発生します。ただし、個人アカウントを使用して Windows をセットアップした場合、エラー メッセージは表示されないのが理想的です。常にそうとは限りませんが。エラーが発生したほとんどのユーザーは、個人アカウントを使用して報告します。私の組織が Windows 11 で PIN を変更するように要求するのはなぜですか?アカウントが組織に関連付けられている可能性があるため、主なアプローチはこれを確認することです。ドメイン管理者に問い合わせると解決できます。さらに、ローカル ポリシー設定が間違っていたり、レジストリ キーが間違っていたりすると、エラーが発生する可能性があります。今すぐ

Windows 11 では、新鮮でエレガントなデザインが前面に押し出されており、最新のインターフェイスにより、ウィンドウの境界線などの細部をカスタマイズして変更することができます。このガイドでは、Windows オペレーティング システムで自分のスタイルを反映した環境を作成するのに役立つ手順について説明します。ウィンドウの境界線の設定を変更するにはどうすればよいですか? + を押して設定アプリを開きます。 Windows [個人用設定] に移動し、[色の設定] をクリックします。ウィンドウの境界線の色の変更設定ウィンドウ 11" width="643" height="500" > [タイトル バーとウィンドウの境界線にアクセント カラーを表示する] オプションを見つけて、その横にあるスイッチを切り替えます。 [スタート] メニューとタスク バーにアクセント カラーを表示するにはスタート メニューとタスク バーにテーマの色を表示するには、[スタート メニューとタスク バーにテーマを表示] をオンにします。

デフォルトでは、Windows 11 のタイトル バーの色は、選択したダーク/ライト テーマによって異なります。ただし、任意の色に変更できます。このガイドでは、デスクトップ エクスペリエンスを変更し、視覚的に魅力的なものにするためにカスタマイズする 3 つの方法について、段階的な手順を説明します。アクティブなウィンドウと非アクティブなウィンドウのタイトル バーの色を変更することはできますか?はい、設定アプリを使用してアクティブなウィンドウのタイトル バーの色を変更したり、レジストリ エディターを使用して非アクティブなウィンドウのタイトル バーの色を変更したりできます。これらの手順を学習するには、次のセクションに進んでください。 Windows 11でタイトルバーの色を変更するにはどうすればよいですか? 1. 設定アプリを使用して + を押して設定ウィンドウを開きます。 Windows「個人用設定」に進み、

タスクバーのサムネイルは楽しい場合もありますが、気が散ったり煩わしい場合もあります。この領域にマウスを移動する頻度を考えると、重要なウィンドウを誤って閉じてしまったことが何度かある可能性があります。もう 1 つの欠点は、より多くのシステム リソースを使用することです。そのため、リソース効率を高める方法を探している場合は、それを無効にする方法を説明します。ただし、ハードウェアの仕様が対応可能で、プレビューが気に入った場合は、有効にすることができます。 Windows 11でタスクバーのサムネイルプレビューを有効にする方法は? 1. 設定アプリを使用してキーをタップし、[設定] をクリックします。 Windows では、「システム」をクリックし、「バージョン情報」を選択します。 「システムの詳細設定」をクリックします。 [詳細設定] タブに移動し、[パフォーマンス] の下の [設定] を選択します。 「視覚効果」を選択します

Windows インストーラー ページに「問題が発生しました」というメッセージとともに「OOBELANGUAGE」というメッセージが表示されますか?このようなエラーが原因で Windows のインストールが停止することがあります。 OOBE とは、すぐに使えるエクスペリエンスを意味します。エラー メッセージが示すように、これは OOBE 言語の選択に関連する問題です。心配する必要はありません。OOBE 画面自体から気の利いたレジストリ編集を行うことで、この問題を解決できます。クイックフィックス – 1. OOBE アプリの下部にある [再試行] ボタンをクリックします。これにより、問題が発生することなくプロセスが続行されます。 2. 電源ボタンを使用してシステムを強制的にシャットダウンします。システムの再起動後、OOBE が続行されます。 3. システムをインターネットから切断します。 OOBE のすべての側面をオフライン モードで完了する

Windows 11 のディスプレイ スケーリングに関しては、好みが人それぞれ異なります。大きなアイコンを好む人もいれば、小さなアイコンを好む人もいます。ただし、適切なスケーリングが重要であることには誰もが同意します。フォントのスケーリングが不十分であったり、画像が過度にスケーリングされたりすると、作業中の生産性が大幅に低下する可能性があるため、システムの機能を最大限に活用するためにカスタマイズする方法を知る必要があります。カスタム ズームの利点: これは、画面上のテキストを読むのが難しい人にとって便利な機能です。一度に画面上でより多くの情報を確認できるようになります。特定のモニターおよびアプリケーションにのみ適用するカスタム拡張プロファイルを作成できます。ローエンド ハードウェアのパフォーマンスの向上に役立ちます。画面上の内容をより詳細に制御できるようになります。 Windows 11の使用方法

画面の明るさは、最新のコンピューティング デバイスを使用する上で不可欠な部分であり、特に長時間画面を見る場合には重要です。目の疲れを軽減し、可読性を向上させ、コンテンツを簡単かつ効率的に表示するのに役立ちます。ただし、設定によっては、特に新しい UI が変更された Windows 11 では、明るさの管理が難しい場合があります。明るさの調整に問題がある場合は、Windows 11 で明るさを管理するすべての方法を次に示します。 Windows 11で明るさを変更する方法【10の方法を解説】 シングルモニターユーザーは、次の方法でWindows 11の明るさを調整できます。これには、ラップトップだけでなく、単一のモニターを使用するデスクトップ システムも含まれます。はじめましょう。方法 1: アクション センターを使用する アクション センターにアクセスできる

Windows のライセンス認証プロセスが突然切り替わり、このエラー コード 0xc004f069 を含むエラー メッセージが表示されることがあります。ライセンス認証プロセスはオンラインですが、Windows Server を実行している一部の古いシステムではこの問題が発生する可能性があります。これらの初期チェックを実行し、システムのアクティブ化に役に立たない場合は、問題を解決するための主要な解決策に進んでください。回避策 – エラー メッセージとアクティベーション ウィンドウを閉じます。次に、コンピュータを再起動します。 Windows ライセンス認証プロセスを最初から再試行します。解決策 1 – ターミナルからアクティブ化する cmd ターミナルから Windows Server Edition システムをアクティブ化します。ステージ – 1 Windows Server のバージョンを確認する 使用している W の種類を確認する必要があります
