Windows上にapache php5をインストールしました。今までXREAで正常に動いていたphpスクリプトがおかしくなりました。
「フォームで入力したマルチバイト文字をPOST又はGETで別ページに引き渡して、SQLでDB検索」
おかしくなったのはこれです。
シングルバイトは正常です。
mbstring関係の設定がおかしいのかなと思いphp.iniのmbstring設定をXreaと全く同じにしました。それでもダメです。
何か他に原因が考えられるでしょうか?
全く同じなのが問題ではないでしょうか?
項目未設定時の動作は環境により異なります。
このため、明示的にエンコーディングや動作方法などを設定しなければいけないことがあります。
また、Windows環境では制限により同じバージョンのPHPでも利用できない命令が存在しますので確認してください。
また、Apacheの設定は確認しましたか?(例えばエンコード情報のヘッダ出力は、メタタグより優先されます)
MySQL5に変えた途端に文字化けして途方にくれたことがあります。ご指摘の通りMySQLの文字コードが原因のようですね。リンク先をしっかり読んで対処したいと思います。
ずばり解決ではないのですが、もう少し問題の切り分けをしては
いかがでしょうか?
シングルバイトはOKでマルチバイトがNGということから、文字コード
がトラブルの原因と推察されますが、PHP内の問題かDB側との問題かが
不明瞭です。
まずはDBに送っているSQLクエリをテスト的に画面出力させて、文字化けが
あるかないか調べては如何でしょうか?
もしあれば、PHP側の文字コードの問題でしょうし、なければPHPの出力文字コードと
DB側の文字コードがミスマッチしているのだと思います。
あと蛇足ですがphpinfo()を使って各サーバーの文字コードの設定
などもう一度ご確認されてはいかがでしょうか?
ご指摘ありがとうございます。
確かに安易に質問してしまいました。
こういう風に漠然とした質問が一番タチが悪いですよね。
「サーバーがおかしくなった!何で!?」と聞いている質問を見ると「その聞き方じゃ誰も答えられないよ・・」と思います。まさにこの質問ですね。反省します。
と話が脱線しましたが、とりあえずPHPとDBのどちらの設定がおかしいのか明確にしてみます。他の方からご指摘頂いているようにDBがおかしいんだと思います。
いいかげんローカルできちんと環境を整えたいのでのんびり原因を探っていきます。回答ありがとうございました。
回答ありがとうございます。
文字コードの問題にはいつも悩まされます。アジア人って損だな・・と愚痴を言ってもしょうがないので、きちんと知識をつけて解決しようと思います。ただあまりこっちの世界に時間を費やすことができないので、のんびりゆっくりやっていこうと思います。