コード例:
@set_magic_quotes_runtime(0) ;
$MQG = get_magic_quotes_gpc();
if(!$MQG && $_POST) $_POST = ダッズラッシュ($_POST);
if(!$MQG && $_GET) $_GET = dddslashes($ _GET);
//翻訳文字関数
function goddslashes($string) {
if(!is_array($string)) return addslashes($string);
foreach ($string as $key => $val) $string[$key] = godslashes($val);
return $string;
}
PHP は以下を提供します2 つの便利な点 データを引用するために使用するマジック参照関数 magic_quotes_gpc と magic_quotes_runtime。これら 2 つの関数が php.ini で ON に設定されている場合、引用するデータに一重引用符 '、二重引用符 '、およびバックスラッシュが自動的に追加されます。バックスラッシュは便利です。シンボルを自動的に変換し、データ操作の正しい動作を保証します。ただし、PHP のバージョンやサーバー構成が異なると、magic_quotes_gpc と magic_quotes_runtime の一部がオンに設定され、一部がオフに設定されるため、「プログラムは両方のオンに準拠する必要がある」と記述しました。では、magic_quotes_gpc 関数と magic_quotes_runtime 関数の違いは何ですか? 次の説明を参照してください:
magic_quotes_gpc 関数と magic_quotes_runtime 関数の違い magic_quotes_gpc
スコープ: Web クライアント
サーバー;
アクション時間: リクエストは、たとえばスクリプトの実行時などに開始されます。
magic_quotes_runtime
スコープ: ファイルから読み取られたデータ、または SQL クエリから取得されたデータ;
アクション時間: スクリプトが実行状態で生成されたデータにアクセスするたび。
つまり、magic_quotes_gpc の設定値は、Get/Post/Cookies を通じて取得されるデータに影響します。magic_quotes_runtime の設定値は、ファイルから読み取られるデータまたはデータベース クエリから取得されるデータに影響します。
例:
$data1 = $_POST [ 'aaa'];
$data2 = implode(file('1.txt'));
if(get_magic_quotes_gpc()){
// データ $data1 を直接データベース (自動翻訳)
}else{
$data1 = addslashes($data1);
//データ $data1 をデータベースに書き込み、関数 (addslashes() を使って翻訳します)
}
if(get_magic_quotes_runtime()){
//データ $data2 をデータベースに直接書き込みます (自動変換)
//データベースから読み取ったデータは、stripslashes() を 1 回通過する必要がありますそして、stripslashes() の関数を出力します。これは、addslashes() の逆の削除:\ です
}else{
$data2 =addslashes($data2);
//データを書き込みます $ data2 をデータベースに挿入します
//データベースから読み取ります データは直接出力されます
}
最も重要な違いは、上記の 2 点です。異なる処理オブジェクトを対象としています。
magic_quotes_gpc の設定値は、Get/Post/Cookies を通じて取得されたデータに影響します。
magic_quotes_runtime の設定値は、影響します。ファイルから読み取ったデータ、またはデータベース クエリから取得したデータ
ところで、関連付けたい関数をいくつか示します。 set_magic_quotes_runtime( ): magic_quotes_runtime 値を設定します。0=オフ。1=オン。デフォルト状態はオフです。
get_magic_quotes_gpc():
magic_quotes_gpc 値を表示します。0=オフ。1=オン
get_magic_quotes_runtime():
magic_quotes_runtime 値を表示します。 0=オフ、1=オン。
set_magic_quotes_gpc() 関数がないことに注意してください。つまり、magic_quotes_gpc の値をプログラムで設定することはできません。