magic_quotes設定を回避する
レンタルサーバーのほとんどでは、magic_quotes機能はoffになっているのですが、一部のレンタルサーバーではセキュリティを高くする目的で、php.ini中でmagic_qoutesがonに設定され、しかもphpプログラムからoffにできないようになっていることがあります。
入力フォームに入れて確認フォームを表示させるとバックスラッシュ/があちこちに追加され、入力フォームに戻る、確認フォームに進むを繰り返すたびにバックスラッシュが//→////とねずみ算式に増えていってしまう不具合現象におちいります。
このような現象はphp処理の前に以下のコードを呼び出すようにすると、回避できて便利です。
if (get_magic_quotes_gpc()) { function mystrip($temp){ if(is_array($temp){ array_map('mystrip', $temp) ; }else{ return stripslashes($temp); } } $_GET = mystrip($_GET); $_POST = mystrip($_POST); $_COOKIE = mystrip($_COOKIE); }
解説:get_magic_quotes_gpc関数でmagic_quotes_gpcがonかoffかを確認して、offなら何もしない。onなら、$_GET,$_POST,$_COOKIEをstripslashes関数で変換する。
$_GET,$_POST,$_COOKIEは多階層の配列の場合があるので、mystrip関数で再起呼びだしをかけているのでちょっと複雑にみえるが、基本はstripslashesで余分な\を削除させているだけ。
2019-07-01 (月) 11:39:41タグ: magic_quotes_gpc
閲覧回数 昨日:1pv TOTAL:3929pv