PHP magic_quotes_gpc は主に WEB クライアントサーバー上で動作します。 次に、その使用方法を詳しく説明します。
AD:
今日紹介したいのは、PHPのmagic_quotes_gpcの具体的な使い方です。 PHP には特別な関数マジック関数があることは誰もが知っています。これは、参照プロセス中に $_GET、$_POST、$_COOKIE が渡された場合にのみ有効になります。
•PHP関数preg_splitの正しい使い方
•PHP関数explode()の具体的な使い方の解釈
•PHP関数implode()関数とexplode()関数の違い
•PHPライクなCMSがキーワードを自動的に取得する方法
• PHP 正規表現を使用して関数 split() を分割する方法について話し合います
1.
条件: PHP magic_quotes_gpc=off
データベースに書き込まれる文字列は、いかなる方法でもフィルタリングされません。データベースから読み取られた文字列は一切処理されません。
データ: $data="snow"''sun"; (snow と sun の間には 4 つの連続した単一引用符があります)
操作: 文字列: "snow"''sun" をデータベースに書き込みます、
結果: SQLステートメント エラーが発生しました。MySQL は SQL ステートメントを正常に完了できず、データベースへの書き込みに失敗しました。
データベース保存形式: データがありません。
出力データ形式: データなし。
注: 未処理の一重引用符は、データベースに書き込まれるときに SQL ステートメント エラーを引き起こします。
2.
条件: PHP magic_quotes_gpc=off
データベースに書き込まれた文字列は、関数 addlashes() によって処理されます。データベースから読み取られた文字列は一切処理されません。
データ: $data="snow"''sun"; (snow と sun の間には 4 つの連続した単一引用符があります)
操作: 文字列: "snow"''sun" をデータベースに書き込みます、
結果: SQLステートメントはスムーズに実行され、データはデータベースに正常に書き込まれます
データベース保存形式: Snow”''sun (入力と同じ)
出力データ形式: Snow”''sun (入力と同じ)
命令: addslashes()関数は一重引用符を変換します エスケープ文字が ' に変換されると SQL ステートメントは正常に実行されますが、 ' はデータベースにデータとして保存されません。データベースは、snow''''sun を保存しますが、snow''''sun は保存しません。想像
3.条件: PHP magic_quotes_gpc=on
データベースに書き込まれた文字列は、いかなる方法でも処理されていません。データベースから読み取られた文字列は一切処理されません。 データ: $data="snow"''sun"; (snow と sun の間には 4 つの連続した単一引用符があります)
操作: 文字列: "snow"''sun" をデータベースに書き込みます、
結果: SQLステートメントはスムーズに実行され、データはデータベースに正常に書き込まれます
データベース保存形式:snow””sun (入力と同じ)
出力データ形式:snow””sun (入力と同じ)
手順: PHP magic_quotes_gpc= on 一重引用符を設定します エスケープ文字が ' に変換されると、SQL ステートメントは正常に実行されますが、
ただし、 ' はデータとしてデータベースに入力されず、データベースは、snow''''sun の代わりに、snow''''sun を保存します。私たちは想像しました
4.条件: PHP magic_quotes_gpc=on
データベースに書き込まれた文字列は、関数 addlashes() によって処理されます。データベースから読み取られた文字列は一切処理されません。 データ: $data="snow"''sun"; (snow と sun の間には 4 つの連続した単一引用符があります)
操作: 文字列: "snow"''sun" をデータベースに書き込みます、
結果: SQLステートメントはスムーズに実行され、データはデータベースに正常に書き込まれました
データベース保存形式: Snow''''sun (エスケープ文字を追加)
出力データ形式: Snow''''sun (エスケープ文字を追加)
手順: PHP magic_quotes_gpc=on は、SQL ステートメントが正常に実行できるように、一重引用符を ' エスケープ文字に変換します。
addslashes は、データベースに書き込もうとしている一重引用符を ' に変換します。後者の変換は、
データベースにデータとして書き込まれます。データベースは雪を保存します''''太陽
概要は次のとおりです:
1. PHP magic_quotes_gpc=on の場合、
データベースから入力および出力される文字列データに対して addslashes() およびtripslashes() 操作を実行することはできません。データは正常に表示されます。
この時点で入力データに対してaddslashes()を実行する場合、
出力時にstripslashes()を使用して余分なバックスラッシュを削除する必要があります。
2. PHP magic_quotes_gpc=off の場合
addslashes() を使用して入力データを処理する必要がありますが、addslashes() はバックスラッシュを書き込まないため、出力をフォーマットするためにstripslashes() を使用する必要はありません。これは、mysql が SQL ステートメントの実行を完了するのに役立つだけです。
補足:
PHP magic_quotes_gpc のスコープは: WEB クライアント サーバー、アクション時間: リクエストの開始時 (スクリプトの実行時など)。 magic_quotes_runtime スコープ: ファイルから読み取られたデータ、または exec() の実行結果、または SQL クエリから取得されたデータ アクション時間: 実行状態で生成されたデータにスクリプトがアクセスするたび