Smartyでプルダウンの中身が空になる

スポンサーリンク

環境

文字コード:EUC-JP

事象

Smartyを使ってるサイトを改修してた折、プルダウンを使ってるところの、プルダウンの中身のデータが空になってしまった。

 

原因

default_charsetの値が””(空っぽ)だった。

 

経緯としては、

Smartyを使ってるサイトを改修してた折、PHPを5から7にバージョンアップした。

それに伴い、php.iniのdefault_charsetの書き方を変える必要があった。

 

php5のphp.ini:

default_charsetについては、何も書かない。(デフォルトを適用させる)

 

この環境と同じにするために、php7では以下の様にした。

php7のphp.ini:

default_charset = ""

対応

plugins/shared.escape_special_chars.php

ファイルを

にて、以下のように書き換えた。

// $string = htmlspecialchars($string);
$string = htmlspecialchars($string, ENT_NOQUOTES, 'EUC-JP');

参考にしたサイト

php5.4 以降での smarty での文字化け : 戯言
古くさくてかつニッチだけど書き残しておく。もう何年前に作ったか分からないシステムがあって、たまにサーバがリースアップしてどうたらとか、ちょっとした変更とかを忘れた頃に頼まれるので、秘伝のタレよろしく記憶を掘り起こして対処してるんだけど、大規模なリファクタ

救いの神でした。。。ありがとう。。。。

 

 

 

 

 

 

コメント