#やりたいこと
フォームのinput要素やTextarea要素で入力した
とおりのひらがな、カタカナ、記号(全角・半角)、英数字(全角・半角)、漢字
を、いったんinsert文でDBに保存。その後何度かUpdateのSQLが実行されDB値は更新される。
画面でDB検索結果を表示させたい場合、insert直後であっても、Updateを何度か行った後でも、
どの段階であっても、かならず入力値どおりに表示させたい。
#経緯
当初、フォームから入力した値はすべてaddslashesを行っていたので、入力値どおりが検索結果に表示されていた。ただし、バックスラッシュを入力しても、検索結果表示時に表示されない。
この問題があったため、入力値をすべてaddslashesすることはやめました。
その結果、DB保存時や保存後の検索結果表示時には
「…」「→」などが混じるようになりました。
#疑問
1)DB保存データをみると、やはり表示時と同じように「…」「→」などが存在する
のはどうしては?
2)保存したデータを画面に呼び出すとやはり「…」「→」などが存在する
#やってみたこと(1)
DB検索し表示する時点でhtmlspecialcharをつけてみる
その結果
「…」を例にとると「amp;hellip;」と化けてしまう
#やってみたこと(2)
入力値
[]!"#$%&'()\クラウド……ABC//……()[]().&'"!*/\→
これを、htmlspecialcharsをしないでDBにinsert
その結果、保存値はphpMyAdminでみたとき
[]!"#$%&'()\クラウド……ABC//……()[]().&'"!*/\→
となっています。
この値をselectして、画面に表示させたとき
[]!"#$%&'()\クラウド……ABC//……()[]().&'"!*/\→
となります。
DB保存値は、入力値と同じ状態になるのがほんとうではないでしょうか?
回答1件
あなたの回答
tips
プレビュー