phpのお問い合わせフォームで入力文字が確認画面で消える時の対処法は「htmlspecialchars()をチェック!」

web制作

最近、あるサイトのデータでごっそりサーバー移動をして、phpのバージョンアップをしたところ、phpフォームにおいて、エラーが発生しました。

内容としては、「お問い合わせフォームのinputに入力した文字が確認画面で反映されない」というものでした。

この時、英文字は反映されるのに日本語だけが反映されないので、原因は文字コード関係かなと思ったんですが、詳しく調べてみたところ、原因は「htmlspecialchars」でした。

結論を先に書くと下記の感じです。

▼昔の記述法だったのでエラー(文字が消える)



$var = htmlspecialchars($var);

▼最新の記述法にすると文字が反映されるようになった



$var = htmlspecialchars($var, ENT_QUOTES, 'SJIS');

要するに昔の書き方だったので、最新のphp7以上の環境で対応しなくなっていた、ということでした。

ですので、昔のphpフォームを利用しているサイトをサーバー移動させたり、php環境をバージョンアップさせる時は、htmlspecialcharsのチェックを忘れないようにしましょう!

もし、お問い合わせフォームの文字が消えた時は、ぜひ疑ってみてください!

最後に一言

phpのバージョンアップはご用心!

この記事をSNSでシェアする?

phpのお問い合わせフォームで入力文字が確認画面で消える時の対処法は「htmlspecialchars()をチェック!」


  • 1
    このエントリーをはてなブックマークに追加
  • Pocket

PROFILE

yoshi

KIYOTATSU(キヨタツ)を運営しているウェブ制作者のYoshiです。得意な分野はディレクションとコーディングです。デザインはシンプルなものだけ可能です。他、色々と随時習得中です。