質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

0回答

265閲覧

phpのフォームで送った文字が、txtで文字化けしてしまう

godaigo

総合スコア10

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2018/09/14 03:17

編集2018/09/14 04:13
<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で表示を確認しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/09/14 03:25

プログラムコード(およびエラーメッセージ)は質問内容としては最も重要な部分であるため、見やすくしていただけると助かります。<code>ボタン押下→「コード」部分にコードを貼り付け→「ここに言語を入力」に対象言語名記入(エラーメッセージの場合は不要)の手順で「コードハイライト化」してください。(質問編集画面ではリアルタイムでプレビューが表示されるので見ながら調整してください)
m.ts10806

2018/09/14 03:34

現象が再現しないので確認したいのですが、ファイル自体の文字コードはどうなっていますか?また、どのような文字を入力すると文字化けしましたか?
godaigo

2018/09/14 03:50

ご指摘ありがとうございます!プログラムコードの見やすさについてはすいませんでした。今後は教えていただいたように編集していきたいと思います。現象についてなのですが、確認したところ、txtファイルの方ではちゃんと表示されていました。確認が足らず、申し訳ございません。txtをchromeで表示させたところ、カタカナが文字化けしている状態です。英字は問題なく表示されています。何が足りないのでしょうか?
m.ts10806

2018/09/14 03:52

質問は編集できるので適宜ご対応いただければと思います。
m.ts10806

2018/09/14 03:53

なるほど。PHPでtxt作る→PHPで作ったtxt読み込んで画面表示させる→文字化け確認 ですね。再現手順として質問に追記しておいてください。カタカナだけではなく全角の文字全て文字化けしませんか?
m.ts10806

2018/09/14 03:56

あ、違うか。「txtをchromeで表示させた」だからPHPから読み込んだわけではなく、テキストファイルをブラウザに直接ドロップしたわけですね?
godaigo

2018/09/14 03:58

はい、そうですね。その状態で確認しています
m.ts10806

2018/09/14 03:59

ごめんなさい。どちらの手順でしょう?(コメントが入れ違いになっています)いずれにしても再現手順を具体的に質問に追記してください。質問は編集可能です(その際に余裕があれば最初の指摘もご対応いただければと)
m.ts10806

2018/09/14 04:12

↑どちらも検証してみましたが再現しませんね・・。
退会済みユーザー

退会済みユーザー

2018/09/14 05:05

そもそもphpソースはエンコーディングが何か、mbstring拡張に関わる設定値はどうなっているのか、も示してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問