2012年4月15日のxrea増強メンテナンス(php4→php5.2)により、2005年に設置したxoops(2.0.13a)に不具合が発生。
- “NEWS2″モジュール(“NEWS”を2個設置するためのモジュール)管理画面の不具合
- “junkweather”モジュールが文字化け
“NEWS2モジュール不具合”
“NEWS”モジュールの方は全く問題ないのに、何故か”NEWS2″モジュールの方は記事が表示されるが承認/編集/投稿できない。
投稿した最後の記事の更新日を見てみると2012.4.11になっている。
xreaの増強メンテが4/15なので、php4→php5が原因だと推測。
いろいろググッてみたところ、以下の記事を発見
→ http://www.wingnotes.net/linux_server/xoops_cube_php5.html
PHP5以降では「register_long_arrays」がONになっていないとダメなようです。
xreaのphpinfo()で設定内容をチェックしてみると、”OFF”になっていました。
早速、htaccessに
「php_flag register_long_arrays ON」
の一行を足してみたところ、見事に”NEWS2″の不具合が解消されました!!
あと、PHP5のをPHP4として動作させる互換モードもあるようですが、register_long_arraysで直ったので試していません。
【PHP5のPHP4互換モード】
zend.ze1_compatibility_mode On
“junkweather”モジュールが文字化け
こちらの方の不具合は、文字化け。
何故か出力内容がUTF8になっている・・・・weather.goo.ne.jpからのデータはEUCなのに・・・
phpのことはよく分からないが、junkweatherが勝手に”UTF”に変換している模様・・・
文字変換を行っているモジュールのファイルを1つ1つチェックして、下記ファイルが怪しいと断定。
「/modules/jweather/blocks/junkweather_blocks.php」
この中のコードを
「mb_convert_encoding($item[0][‘????’], “EUC-JP”, “auto”);」
に修正
これで合っているのか分かりませんが、とりあえず文字化けは直っているので結果オーライということで・・・