2015/05/26

WP管理画面開発時に強制シングルクォートエスケープの罠

WordPressの管理ページ作成時に編集フォームPOSTデータを独自テーブルへストアする際にハマったのでメモ。

入力フォームから取得したPOSTデータが意図せずシングルクォートでエスケープされてしまう。
php.ini を確認するも magic_quotes_gpc = Off になっている。
調べてみると、WordPressの仕様で magic_quotes_gpc の有効、無効問わず常に内部的にクォートされている
状態で処理がされる前提となっておりWordPress側の前処理でクォートエスケープされているためでした。

この時私は、WPにくっつけない構成で既に作成済みのコードをそのまま流用したかっため2つのファイルを
用意して、
magic_quotes済みPOST,GETをキャンセル▶やりたいこと▶元に戻す
で対処しました。
具体的には下記の通り。

proc_do_cancel_wp_preprocessing.php

proc_undo_cancel_wp_preprocessing.php

参考

WordPressに学ぶ、magic_quotes_gpcの影響の除去

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

JavaScriptを有効にしてください。
あるいは下記手順で投稿できます。
1.「トークンコード取得」を押すと枠内にトークンコードが表示されます
2.表示されたトークン文字を「投稿確認トークン入力」へ入力します

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">