直った

2016年9月19日

調子こいてすいませんでした。
あんだけMTクソとか言っておいて
実は自分の設定がミスってました・・・。
コメントのエラー、確かに設定ミスではありましたが
現状シフトJISの状態で直すのは無理でした。
その原因は結局特定できず
全てをMySQLにした直後と同様にUTF-8に設定変更。
これだとトップページが文字化けします。
METAタグにも間違いなくUTF-8が入ってるし
一部のブラウザでMETAタグを無視するっていう対策の為に
HEADタグのすぐ下にMETAタグ置いたりしてるので
IEでも問題が出ないようにしてあります。
っていうかChromeでも文字化けしてるのでIEだけの問題じゃなかった。
で、ふとトップページをダウンロードしてhtml保存してみる。
サイドバー等、他のレンタルサービスガジェットの問題もあるかもしれないので
ローカル保存すればそれらのアクセスを遮断できるという目的で表示。
うむ、ガジェットは表示された挙句に文字化けも起こらない。
つまり、htmlだといいのにネット上のphpはダメ。
そこでピンときてphp側のphp.iniを覗いてみる・・・。
default_charset = “Shift_JIS"
てめええかあああああああああああああああ!!!!!
はい、phpファイルは強制的にシフトJISを使う設定になってました。
UTF-8にしてApache再起動で
普通にIEでもデフォルトでUTF-8エンコードするように。
そして文字化けやら文字コードが正常になったので
コメント投稿も問題なく出来るように。
コメント欄に何も入れてなくてもエラーが出てた所から見ると
UTF-8とシフトJISの文字化けでhtmlソースそのものがどっかでバグってしまい
それでコメント投稿時のcgiかjsファイルか何かが正常に呼び出されなかったか
それらの呼び出し時に渡す引数か何かもバグってたのかもしれない。
というわけでコメント欄は復活しましたが
コメント設定はMTのバージョンが3の頃から変えてなかったので
認証サービスは無かったのですが
MT4からはデフォルトで認証があったりするので
今回、コメント許可→禁止→許可にした際に
MT4仕様のコメントになってしまった為に、コメントするにはなんたらとか
サインインしてくださいとかいった表示か出るかも。
まぁなんにせよ半年くらい放置するかもと書いたのに2時間ほどで解決。
相変わらず思い切り回り道してから解答に辿り着くのが私。
そしてこれだけ苦労したのに
肝心のコメント投稿時間はSQLiteと同じくらい重いまま
これはもうMT4の仕様なんだろうか・・・やっぱりMTはクソだ。