ホームページ  >  記事  >  バックエンド開発  >  PHP の詳細な使用法 magic_quotes_gpc_PHP チュートリアル

PHP の詳細な使用法 magic_quotes_gpc_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-15 13:30:29825ブラウズ

今日ご紹介したいのは、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(入力と同じ)

手順: addlashes () 関数は、SQL ステートメントが正常に実行できるように単一引用符をエスケープ文字に変換します。ただし、データベースに保存されるのは雪ではなく雪です。 '''' 想像しました。 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 ステートメントは正常に実行されましたが、データとしてデータベースに入力されませんでした。データベースには、私たちが想像していた雪''''太陽ではなく、雪''''太陽が保存されました。


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 は、データベースに書き込もうとしている一重引用符を ' に変換します。後者の変換は次のように記述されます。 data

データベース、データベースはsnow''''sunを保存します

概要は次のとおりです:

1. PHPのmagic_quotes_gpc=onの場合、


文字列に対して

addslashes()およびstripslashes()を実行することはできません。データベースへのデータ入出力操作を行った場合、データは正常に表示されます。


この時点で入力データに対してaddslashes()を実行する場合は、

出力時にstripslashes()を使用して余分なバックスラッシュを削除する必要があります。


2. PHP magic_quotes_gpc=off の場合

addslashes() を使用して入力データを処理する必要がありますが、addslashes() はバックスラッシュを書き込まないため、出力をフォーマットするためにstripslashes() を使用する必要はありません。これは、mysql が SQL ステートメントの実行を完了するのに役立つだけです。

補足:

PHP magic_quotes_gpc のスコープは: WEB クライアント サーバー、アクション時間: スクリプトの実行時など、リクエストの開始時です。

magic_quotes_runtime スコープ: ファイルから読み取られたデータ、または exec() の実行結果、または SQL クエリから取得されたデータ; アクション時間: スクリプトが実行状態で生成されたデータにアクセスするたび




http://www.bkjia.com/PHPjc/446297.html

www.bkjia.com本当http://www.bkjia.com/PHPjc/446297.html技術記事今日ご紹介するのは、 1. 条件: PHP magic_quotes_gpc=off データベースに書き込まれる文字列は、いかなる方法でもフィルタリングされていません。データベースから読み取られた文字列は一切処理されません...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。