2009-04-17
PHP POSTしたダブルクォーテーションをエスケープさせない
ひさびさにPHPの開発。環境を整えるのに時間をとられましたが、本日分のノルマ1画面分は、なんとか完成できたかと思います。あとは細かい仕様の確認と、他画面との連携部分。
嵌ったこと
画面からJSON文字列をPOSTして、コントローラで連想配列にデコードする処理。これがなかなかうまくいきませんでした。var_dumpしてみると、デコードした値がNULLになってる。じゃあデコードする前はどうかというと、こんな中身になってた。
{\"item_id\":\"1\"}
画面のソース上では通常なのに、POSTすると「"」がエスケープされてる。原因はおそらくPHPの設定だろうと思い、php.iniを調べてみる。
;magic_quotes_gpc = On magic_quotes_gpc = Off
magic_quotes_gpcの値をOffにする。これで良さ気。
…と思いきや、現象は変わらず。
煮詰まったのでほかの人のPCで試させてもらったところ、エスケープされずうまくいく。そこで、liucheng氏から「XAMPPだったらApacheフォルダにもphp.iniがある」との助言。
そういえば自分が編集したのはxampp¥php¥php.iniのほうでした。確かにxampp¥apache¥bin¥php.iniにもあり、こちらを編集したらうまくいきました。感謝感謝♪
トラックバック - http://d.hatena.ne.jp/deeeki/20090417/magicquotesoff
リンク元
- 44 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&hs=cxp&q=php+post+エスケープ&btnG=検索&lr=lang_ja
- 36 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4DAJP_jaJP266JP266&q=php+\+post
- 32 http://www.google.co.jp/url?sa=t&rct=j&q=php ダブルクォーテーション エスケープ&source=web&cd=6&sqi=2&ved=0CGAQFjAF&url=http://d.haten
- 31 http://www.google.co.jp/search?hl=ja&q=php+ダブルクォーテーション&lr=&aq=0r&oq=php+ダブルく
- 27 http://www.google.co.jp/search?hl=ja&source=hp&q=php+ダブルクォーテーション エスケープ&btnG=Google+検索&lr=&aq=0r&oq=
- 26 http://www.google.co.jp/search?hl=ja&q=ダブルクォーテーション&lr=
- 25 http://www.google.co.jp/search?q=php+ダブルクォーテーション エスケープ&sourceid=navclient-ff&ie=UTF-8&rlz=1B3GGGL_jaJP243JP244&aq=t
- 22 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCQQFjAA&url=http://d.hatena.ne.jp/deeeki/20090417/magicquotesoff&ei=7GovT8eOF8vAmQXB9MDhDw&usg=AFQjCNEr5qb2kbeSOMmiCeqbaojTWKTSIQ&sig2=5WS4QG2sIT3fSs621l3KnQ
- 20 http://www.google.co.jp/search?hl=ja&q=php+エスケープ+<&btnG=検索&lr=
- 19 http://www.google.co.jp/search?q=ダブルクォーテーション&hl=ja&lr=lang_ja&start=10&sa=N



