水曜以外もどうでしょう

北海道発。食べ歩きの記録グルメ情報や北海道の見どころなどをメモ替わりに書いています。

PREV | PAGE-SELECT | NEXT

≫ EDIT

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
応援宜しくお願いします。ポチ↓↓
fC2ブログランキング にほんブログ村 グルメブログ 北海道食べ歩きへ 人気ブログランキングへ


| スポンサー広告 | --:-- | comments(-)| trackbacks(-)| TOP↑

≫ EDIT

magic_quotes_gpc = Onの対策について

PHPのmagic_quotes_gpcをOffにすべきであるという議論をよく見かける。

自分がphpに最初に触ったときには、参考にしたソースではOnになっていて、Onを前提としたコードが書かれていた。

「そうか、phpはデータベース操作するときにエスケープしなくていいんだ、楽ちん」

ぐらいに思っていた。。


しかし、使っていくうちに、

「あれ、バックスラッシュが増えて(二重にエスケープされて)いるぞ」
「この場面では、stripslashes()で戻さなきゃだめだ」

と煩雑になってくることに気づく。

例えば、formで入力させた場合に、入力エラーがあったときに「戻る」ボタンで再入力してもらうとき。
formで受けた内容を、form()で戻すことがしばしばある。
そんなときは、やっぱりstripslashes()でバックスラッシュを取り除く。。。

その他、エスケープされる変数とされない変数もあることを知る。

参考ページ。

http://d.hatena.ne.jp/teracc/20070125/1169722643

これは不便だ。

なにより、
magic_quotes_gpcはphp 6.0で使えなくなるらしい。


深手になる前に改善しておく必要があり、今やっている仕事ではmagic_quotes_gpcをOffにして、Off前提のコードを書くよう変更してみた。

具体的には、db操作の直前にaddslashes()する訳だ。
そして、formから戻ったときのstripslashes()をやめる。

こんな感じで大体対応完了。


ただし、サーバの制限で、php.ini等で「magic_quotes_gpcをOffにできない」場合には逆に困ってしまう。
そんな対策をされている方を発見。

参考サイト)
http://pentan.info/php/magic_quotes_on.html

こんなコードを入れておけば良いようだ。

if (get_magic_quotes_gpc()) {
  function strip_magic_quotes_slashes($arr)
  {
    return is_array($arr) ?
      array_map("strip_magic_quotes_slashes", $arr) :
      stripslashes($arr);
  }

  $_GET     = strip_magic_quotes_slashes($_GET);
  $_POST    = strip_magic_quotes_slashes($_POST);
  $_REQUEST = strip_magic_quotes_slashes($_REQUEST);
  $_COOKIE  = strip_magic_quotes_slashes($_COOKIE);
}



ありがとうございます。

スポンサーサイト
応援宜しくお願いします。ポチ↓↓
fC2ブログランキング にほんブログ村 グルメブログ 北海道食べ歩きへ 人気ブログランキングへ


| php | 12:52 | comments:0| trackbacks:0| TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://vmemo.blog36.fc2.com/tb.php/287-18391ed8

TRACKBACK

PREV | PAGE-SELECT | NEXT

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。