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

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

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

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

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Q&A

解決済

4回答

6198閲覧

phpで問合せフォーム作成のメール内容が文字化けします。

gen0825

総合スコア15

PHP

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

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

0グッド

1クリップ

投稿2017/06/14 12:59

php、html初心者のものです。
ご指南よろしくお願いいたします。

現在お問合せフォームを作成しているのですが、最後にメールを送るようにしているのですが、メールの件名、内容が?????となり、文字化けしております。
似たような事を質問されている方がいらっしゃったので、参考にしてみましたが、文字化けが直りません。
解決方法を教えて頂ければと思います。

###発生している問題・エラーメッセージ

エラーメッセージ

###該当のソースコード
入力画面 test6_harada.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <form action = "test6_harada_form1.php" method = "POST"> メールアドレス<br><input type = "text" name = "mail_address" size = "30"></input><br><br> 問合せ内容<br><textarea name = "naiyou" cols = "50" rows = "5"></textarea><br><br> 氏名<br><input type = "text" name = "shimei" size = "15"></input><br><br> ふりがな<br><input type = "text" name = "furigana" size = "15"></input><br><br> 生年月日<br><select name = "year"> <?php function seinengappi($start, $end){ for($i = $start; $i <= $end; $i++){ echo "<option value=\"{$i}\">{$i}</option>"; } } seinengappi('1917',date('Y')); ?>
</select> 年 <select name = "month">
<?php seinengappi('1','12'); ?>
</select> 月 <select name = "day">
<?php seinengappi('1','31'); ?>
</select> 日<br><br> 問合せジャンル<br><label><input type = "radio" name = "toiawase[]" value = "発送について" checked>発送について</input></label> <label><input type = "radio" name = "toiawase[]" value = "商品について">商品について</input></label> <label><input type = "radio" name = "toiawase[]" value = "価格について">価格について</input></label><br><br> <input type = "submit" name = "sousin" value = "確認画面へ"></input><br><br>
</form>

確認画面 test6_harada_form1.php

<?php echo '<meta http-equiv="Content-Type" content="text/html; charset=SJIS" />'; mb_language("ja"); mb_internal_encoding("UTF-8"); $mail_address = $_POST["mail_address"]; $naiyou = $_POST["naiyou"]; $shimei = $_POST["shimei"]; $furigana = $_POST["furigana"]; $year = $_POST["year"]; $month = $_POST["month"]; $day = $_POST["day"]; $toiawase = $_POST["toiawase"]; echo mb_internal_encoding(); $message = "メールアドレス:".$mail_address."\n問い合わせ内容:".$naiyou."\n氏名:".$shimei."\nふりがな:".$furigana."\生年月日:".$year.'年'.$month.'月'.$day.'日'."\n問い合わせジャンル:".$toiawase; $subject = '問合せ'; mb_internal_encoding("UTF-8"); if(!mb_send_mail("harada@ms-co.net", $subject, $message, "From: " . $mail_address)){ exit("error"); } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=SJIS" /> <title>送信完了画面</title> </head> <body> <p>お問合せありがとうございます。</p> <form action="test6_harada_form1.html" method="post"> <input type="submit" value="戻る" /> <form> </body> </html>

###試したこと
mb_internal_encoding('UTF-8');
mb_internal_encoding('SJIS');

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
3ファイルともにSJISで保存しております。

お手数ですが、お力添え頂ければと思います。
よろしくお願いいたします。

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

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

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

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

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

m.ts10806

2017/06/14 13:30

プログラムコードは```で囲ってください(わからなければ質問編集画面でコード部分を選択して<code>ボタンを押してください。
gen0825

2017/06/14 23:47

ご指摘ありがとうございます。編集してみました。
m.ts10806

2017/06/14 23:52

保存し忘れました?質問本文が変わってないですし編集履歴表示が出ていません
hotta

2017/06/14 23:53

php のバージョンは何ですか?
guest

回答4

0

ベストアンサー

mb_internal_encoding()は内部文字エンコーディングを設定または取得するのでメールタイトルや本文などは関係ないのではと思います。
SJISのプログラムファイルで
mb_internal_encoding("UTF-8")は画面文字化けの原因になるんじゃないかなと・・。
結構連発されてますが、通常は一度でいいはず。
mb_convert_encodingでメールタイトル・本文を変換されてはどうでしょうか。

※UTF8からの変換もありますので適宜読み替えてください。

投稿2017/06/15 01:08

m.ts10806

総合スコア80731

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

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

gen0825

2017/07/03 07:38

遅くなり申し訳ございません。 mb_convert_encodingで行いましたら解決いたしました。 お力添えありがとうございました。
guest

0

mb_convert_encoding は試されましたか?

http://php.net/manual/ja/function.mb-convert-encoding.php

投稿2017/06/15 00:36

KoheiNakahara

総合スコア10

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

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

gen0825

2017/07/03 07:47

連絡が遅くなり、申し訳ございません。 お力添えありがとうございました。
guest

0

SJISをやめて、全てUTF-8で保存して、その使用にするとか。参考までに。

投稿2017/06/15 00:14

manabunbun

総合スコア39

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

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

gen0825

2017/07/03 07:41

連絡が遅くなり、申し訳ございません。 お力添えありがとうございました。
guest

0

さしあたり、mb_internal_encoding('UTF-8'); は間違いで、
mb_internal_encoding('SJIS'); が正しいですが、それは試したのですよね。

投稿2017/06/14 21:43

ockeghem

総合スコア11701

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

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

gen0825

2017/06/14 23:38

早速の回答有難うございます。 はい、mb_internal_encoding('SJIS');は試したのですが、文字化けします。
gen0825

2017/06/14 23:48

mb_internal_encoding('SJIS');を書く場所は、最後の送信完了画面でしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問