- 締切済み
PHPがローカルだと正常なのに、アップすると一部だけ表示されない
PHP初心者です。 ローカルにApache、PHP5をインストールしています。 使用環境はWinXP、PHPエディタを使用して、EUC-JPでコーディングしています。 レンタルサーバは、XREAです。 掲示板のような物を作成してみました。 パスワードで管理画面に入り、新規投稿、更新、削除が可能なものです。 投稿内容は年、月、日、URL、タイトル、内容の6項目のみです。 この6項目は、formからPOSTで送信し、カンマ区切りでdatファイルに1行ずつ書き込んでいます。 このdatファイルを1行ずつ読み込み、カンマ区切りごとに配列に格納し、投稿内容一覧画面に出力しています。 ローカルでは問題なく動作するのですが、XREAのサーバにアップするとおかしくなります。 エラーは起こりませんが、件名に全角を入力した場合に出力されない(配列変数内容を出力しても表示されませんでした) 内容に全角で複数行入力した際に1行目のみ出力されない。1ぎょうのみ入力した際は、表示されない。 いずれも、全角の場合のみで、半角を入力すると問題なく出力される。 ちなみに、datファイルを確認するときちんと書き込みされています。 また、うまく出力されていない投稿内容の更新画面に移ると、textareaに配列変数の内容がきちんと出力されます。 なぜ、全角の場合のみ1行目だけが出力されないのでしょうか? 他のレンタルサーバでは、うまく動き、違う点はphp.iniの設定が可能で、ローカルの環境のiniをそのまま反映させていることです。 XREAでは、php.iniの設定が出来ないようでこの辺りが関係しているのでしょうか?それともパーミッションなどでしょうか? 現在は、PHPのパーミッションを755に、datファイルの757にしています。 よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- tany180sx
- ベストアンサー率63% (239/379)
半角文字なら正常ということはエンコーディングの問題でしょうか。 mbstring関連の設定を明記すれば回答が得られるかと。 detect_order encoding_translation http_input internal_encoding http_output また、PHPコード内でini_set等していますか? input系の設定はPHPコードでは効きませんので。
補足
mbstring関連は、あまり周知していなくて。 ソース内では特に設定はしていません。 反対に出力するHTMLのページを <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"/>にしています。 XREAのphp.iniがどこにあるのかわからないのですが、phpinfo()などで見ることが可能なのでしょうか? 可能だとすれば、root/に置いてやれば、見ることが出来ますか?