2014年6月6日金曜日

HTML_QuickFormのPHP5.5対応(とりあえず)

まだ、PEARのHTML_QuickFormを使っているサイトがいくつか残っていてそのサーバを変えるということでPHP5.5対応しなければならなくなった。
phpとかDBがutf8で動いていたら問題ないんだけど、10年以上前のサイトで文字コードはEUC-JP。
全部作り変えるのは予算・時間的に無理なので少しだけ修正して対応。


問題点:フォームに日本語が表示されない

htmlspecialcharsがPHP5.4からパラメータが変わった模様。
htmlspecialcharsで変換した結果、空文字列になってしまっている。

というわけで、今回問題があったテキスト入力のフォームのファイル2つにちょこっと手を入れる。

pear/HTML/QuickForm/element.php
pera/HTML/QuickForm/textarea.php

この2ファイルの、「htmlspecialchars($value)」のように引数1つだけを渡している部分を、

$charset = HTML_Common::charset();
htmlspecialchars($value, ENT_COMPAT, $charset)

のような感じに修正。


ずいぶん前からQuickForm2を使えといわれておりますが対応できておりません。
そのうちFuelで書き直す。

0 件のコメント: