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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

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

Q&A

解決済

1回答

1583閲覧

コーディングした「HTML・PHP」でメール送信をすると、本文だけ表示されない問題

10masa19

総合スコア7

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

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

0グッド

0クリップ

投稿2019/12/17 03:55

前提・実現したいこと

PHP・HTMLともに初心者です。
お問い合わせフォームを作成中で、メール送信まではできております。
他の項目は表示されるので、本文だけが表示されない問題について解決したいです。

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

mb_send_mail() 関数で第3引数に渡している値が取得できていない、
あるいは表示できていない

該当のソースコード

[index.html]

html

1<form action="mail.php" method="post"> 2 3 <table class="contact-form"> 4 <tr> 5 <th class="">From</th> 6 <td class=""> 7 <input class="contact-form__default" type="email" name="senderAddress" placeholder="お客様のアドレス 例:tarou.exsample.jp"/> 8 </td> 9 </tr> 10 <tr> 11 <th class="contact-form__frameUnderThin">To</th> 12 <td class="contact-form__frameUnderThin"> 13 <p class="contact-form__font">×××××××@yahoo.co.jp</p> 14 </td> 15 </tr> 16 <tr> 17 <th class="contact-form__head">お名前</th> 18 <td class="contact-form__data"> 19 <input class="contact-form__default" type="text" name="name" placeholder="例:山田 太郎"/> 20 </td> 21 </tr> 22 <tr> 23 <th>ご依頼項目</th> 24 <td class=""> 25 <input type="checkbox" name="arrange">アレンジ制作&nbsp;&nbsp; 26 <input type="checkbox" name="composition">作曲&nbsp;&nbsp; 27 <input type="checkbox" name="other">その他 28 </td> 29 </tr> 30 <tr> 31 <th>希望納期</th> 32 <td class=""> 33 <input type="date" name="date" value="2018-01-11"> 34 </td> 35 </tr> 36 <tr> 37 <th class="">お問い合わせ内容</th> 38 <td class=""> 39 <textarea class="contact-form__textarea" name=”message” placeholder="お問い合わせ内容をご記入ください"> 40 </textarea> 41 </td> 42 </tr> 43 </table> 44 45 <div class="contact-form__button"> 46 <input class="contact-form__confirm" type="submit" value="メール送信"/> 47 </div> 48 49 </form>

[mail.php]

php

1<!DOCTYPE html> 2<html> 3 <head> 4 <meta charset="utf-8" /> 5 </head> 6 7 <body> 8 <?php 9 mb_language("Japanese"); 10 mb_internal_encoding("UTF-8"); 11 12 /*htmlからの取得項目*/ 13 $to = "×××××××@yahoo.co.jp"; 14 $name = $_POST['name']; 15 $title = "依頼内容"; 16 $content = $_POST['message']; 17 $address = $_POST['senderAddress']; 18 $arrange = $_POST['arrange']; 19 $date = $_POST['date']; 20 21 /* $request = "アレンジ制作 $arrange"; */ 22 $from = "From: $address"; 23 24 if(mb_send_mail($to, $title, $content, $from)){ 25 echo "メールを送信しました"; 26 } else { 27 echo "メールの送信に失敗しました"; 28 }; 29 ?> 30 </body> 31 32</html>

※テストを簡潔にするため、取得した値を表示していない変数があります。
「送信先のメールアドレス」と「タイトル」は入力させず、[mail.php]で設定します。

試したこと

・メール本文の表示確認
mb_send_mail()関数の第3引数、$content を $name に変更し、
本文に文字が表示されるかを確認したところ、本文には問題なく名前が表示されたが、
$content の内容はどこにも表示されなかった

・[mail.php]にて、$content の値を変更
$content にHTMLからの取得する message の値を代入せず、

$content = "これは本文です。";

のように、PHP側で文字を設定すると、送られたメール本文には
$content の内容が表示された。

<textarea><input>に変更して実行

<textarea>タグの使い方が間違っている、あるいは理解できていないと考え、 <textarea>~</textarea> を <input type = "text"> に変更 → 「メール送信」

結果は変わらず、送られたメール本文には $content の内容が表示されなかった。

補足情報(環境/ツールのバージョンなど)

レンタルサーバー:クイッカ にてファイルをアップロードし、テストメール送信を実施

・開発環境:Brackets
・PHP Version 7.3.12

原因と思われる事項

・コーディングミス
・php.ini の設定
・サーバー側の設定、問題

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

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

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

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

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

m.ts10806

2019/12/17 04:04

var_dump()で$_POSTを出力して内容を確認してみてください
m.ts10806

2019/12/17 04:08

↑次から質問前に確認するようにしてください。それだけで自己解決できることも多いです
10masa19

2019/12/17 04:21

ご回答、ご指摘ありがとうございます。 いくら調べても何時間悩んでも解決できなかったので、質問させていただきました。 var_dump()も使った事がなかったので勉強になりました。 ありがとうございます!
guest

回答1

0

ベストアンサー

name部分のダブルクオートが全角になっているので半角にするとどうでしょうか?

HTML

1<textarea class="contact-form__textarea" name=”message” placeholder="お問い合わせ内容をご記入ください"> 23<textarea class="contact-form__textarea" name="message" placeholder="お問い合わせ内容をご記入ください">

投稿2019/12/17 04:00

mayoi_maimai

総合スコア1583

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

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

10masa19

2019/12/17 04:09

ダブルクオートを半角に変更したところ、無事に表示されました。 ただのコーディングミスで、お手数おかけしました。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問