<html> <head> <meta http-equiv="content-type" charset="UTF-8"> </head> <body> <form action="mission_1-6.php" method="post"> <input name="comment" type="text" value="" placeholder="コメント"> <input type="submit" name="send" value="送信"><br> </form> </body> </html> <?php if(isset($_POST["send"]) === true){ $filename='mission_1-6_Daigo.txt'; $fp=fopen($filename,'a'); if (!empty($_POST['comment'])) { fwrite($fp,$_POST['comment']."\n"); } } ?> ```### 前提・実現したいこと phpでフォームが送信されるごとに、テキストファイルが追記保存されるようにし、 追記する際には必ずテキストファイル内で改行される状態になり、かつ、入力フォームが空の時は処理しないようにする条件分岐を設定したいです。 ### 発生している問題・エラーメッセージ カタカナでコメントと打つとテキストファイルで、もじばけしてしまいます ### 該当のソースコード ### 試したこと もともと、fwriteの下には if($_POST['comment'] === '完成'){ echo "おめでとう!"; }else { date_default_timezone_set('Asia/Tokyo'); $date = date("Y/m/d H:i:s"); print_r ($date."に".$_POST["comment"]."を受け付けました。"); } というものを書いてあったのですが、この条件分岐は表示されない状態で、かつ、時間や受付けましたのコメントは必要ないので削除しました。 発生手順 txtファイルそのものにはphpフォームにて入力し、送信した文章が反映されていましたが、ffftpを使用し、chrome上でtxtファイルを開くとカタカナが文字化けしてしまいます。 ### 補足情報(FW/ツールのバージョンなど) プログラミング初心者のため、どこの行が間違っているのか、また、どういう機能がその場所にあるのか、解説していただきたいです。 使用しているテキストファイルはteraPadです。ffftpを使用しながら、ブラウザやchromeで表示を確認しています。
プログラムコード(およびエラーメッセージ)は質問内容としては最も重要な部分であるため、見やすくしていただけると助かります。<code>ボタン押下→「コード」部分にコードを貼り付け→「ここに言語を入力」に対象言語名記入(エラーメッセージの場合は不要)の手順で「コードハイライト化」してください。(質問編集画面ではリアルタイムでプレビューが表示されるので見ながら調整してください)
現象が再現しないので確認したいのですが、ファイル自体の文字コードはどうなっていますか?また、どのような文字を入力すると文字化けしましたか?
ご指摘ありがとうございます!プログラムコードの見やすさについてはすいませんでした。今後は教えていただいたように編集していきたいと思います。現象についてなのですが、確認したところ、txtファイルの方ではちゃんと表示されていました。確認が足らず、申し訳ございません。txtをchromeで表示させたところ、カタカナが文字化けしている状態です。英字は問題なく表示されています。何が足りないのでしょうか?
質問は編集できるので適宜ご対応いただければと思います。
なるほど。PHPでtxt作る→PHPで作ったtxt読み込んで画面表示させる→文字化け確認 ですね。再現手順として質問に追記しておいてください。カタカナだけではなく全角の文字全て文字化けしませんか?
あ、違うか。「txtをchromeで表示させた」だからPHPから読み込んだわけではなく、テキストファイルをブラウザに直接ドロップしたわけですね?
はい、そうですね。その状態で確認しています
ごめんなさい。どちらの手順でしょう?(コメントが入れ違いになっています)いずれにしても再現手順を具体的に質問に追記してください。質問は編集可能です(その際に余裕があれば最初の指摘もご対応いただければと)
↑どちらも検証してみましたが再現しませんね・・。
そもそもphpソースはエンコーディングが何か、mbstring拡張に関わる設定値はどうなっているのか、も示してください。
あなたの回答
tips
プレビュー