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

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

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

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

メール

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

692閲覧

コンタクトフォームからのメール送受信がうまく機能しない

HiroK59

総合スコア10

PHP

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

メール

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/04/30 14:44

編集2020/04/30 14:45

前提・実現したいこと

コンタクトフォームに氏名。メールアドレスなどを記入してもらった後、
確認→送信の流れでページが変化します。

送信と同時にサイト訪問者と運営側に確認のメールを送信したいのですが、
下記2つの問題が起きています。

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

1:運営側のメールに、nameの内容が反映されない。(件名やテキスト、オレンジの部分は反映されている。画像参照)
イメージ説明

2:訪問者にメールが届かない

該当のソースコード

HTML

1<div class="form"> 2<div class="box"> 3<label for="name">お名前</label><input type="text" id="name" name="name" required> 4</div> 5<div class="box"> 6<label for="name">アドレス</label><input type="text" id="mail" name="mail" required> 7</div> 8<div class="box"> 9<label for="job">職種</label><input type="text" id="job" name="job"> 10</div> 11<div class="box radio"> 12<p>ご相談</p> 13<div class="radiolist"> 14<div class="linetop"> 15<input type="checkbox" id="logo" name="matter[]" value="ロゴ"> 16<label for="logo">ロゴ</label> 17<input type="checkbox" id="card" name="matter[]" value="名刺"> 18<label for="card">名刺</label> 19<input type="checkbox" id="pictogram" name="matter[]" value="ピクトグラム"> 20<label for="pictogram">ピクトグラム</label> 21</div> 22<div class="linebottom"> 23<input type="checkbox" id="pamphlet" name="matter[]" value="パンフレット"> 24<label for="pamphlet">パンフレット</label> 25<input type="checkbox" id="map" name="matter[]" value="地図"> 26<label for="map">地図</label> 27<input type="checkbox" id="web" name="matter[]" value="WEB"> 28<label for="web">WEB</label> 29<input type="checkbox" id="other" name="matter[]" value="その他"> 30<label for="other">その他</label> 31</div> 32</div> 33</div> 34<div class="box area"> 35<label for="detail">詳細</label><textarea name="detail" id="detail" required></textarea> 36</div> 37<input type="submit" class="btn" name="confirm" value="確認"> 38</div> 39</div> 40</form>

php

1<?php 2$mode = 'confirm'; 3if (isset($_POST['confirm']) && $_POST['confirm']) { 4$mode = 'confirm'; 5} else { 6if(isset($_POST['send']) && $_POST['send']) { 7$mode ="send"; 8} 9} 10?> 11 12 13<!DOCTYPE html> 14<html lang="ja"> 15<head> 16<meta charset="UTF-8"> 17</head> 18 19 20<body> 21<?php if($mode == 'confirm') { ?> 22 23<!-- 確認画面 --> 24<form action="action.php" method="post"> 25<p>お名前:<?php echo htmlspecialchars($_POST['name'])?> 26</p> 27<p>アドレス:<?php echo htmlspecialchars($_POST['mail'])?> 28</p> 29<p>職種:<?php echo htmlspecialchars($_POST['job'])?> 30</p> 31 32<p>ご相談:<?php 33$matter = $_POST['matter']; 34foreach ($matter as $value){ 35$c .=$value.","; 36} 37echo $c; 38?> 39</p> 40 41<p>詳細:<?php echo htmlspecialchars($_POST['detail'])?> 42</p> 43<p></p> 44<a href="javascript:history.back();">戻る</a> 45<input type="submit" name="send" value="送信"> 46 47</form> 48 49<?php } else { 50 51// 送信ボタンが押されたら 52// メールくれた人にメールを送信 53 54// 変数とタイムゾーンを初期化 55$header = null; 56$auto_reply_subject = null; 57$auto_reply_text = null; 58$admin_reply_subject = null; 59$admin_reply_text = null; 60date_default_timezone_set('Asia/Tokyo'); 61 62// ヘッダー情報を設定 63$header = "MIME-Version: 1.0\n"; 64$header .= "From: 企業名 <アドレス>\n"; 65$header .= "Reply-To: 企業名 <アドレス>\n"; 66 67// 件名を設定 68$auto_reply_subject = 'お問い合わせありがとうございます。'; 69 70// 本文を設定 71$auto_reply_text = "この度は、お問い合わせ頂き誠にありがとうございます。 72下記の内容でお問い合わせを受け付けました。\n\n"; 73$auto_reply_text .= "お問い合わせ日時:" . date("Y-m-d H:i") . "\n"; 74$auto_reply_text .= "氏名:" . $_POST['name'] . "\n"; 75$auto_reply_text .= "メールアドレス:" . $_POST['mail'] . "\n"; 76$auto_reply_text .= "職種:" . $_POST['job'] . "\n\n"; 77$auto_reply_text .= "ご相談:" . $_POST['matter'] . "\n\n"; 78$auto_reply_text .= "詳細:" . $_POST['detail'] . "\n\n"; 79$auto_reply_text .= "企業名"; 80 81// メール送信 82mb_send_mail( $_POST['mail'], $auto_reply_subject, $auto_reply_text, $header); 83 84 85 86// 運営側へ送るメールの件名 87$admin_reply_subject = "お問い合わせを受け付けました"; 88 89// 本文を設定 90$admin_reply_text .= "お問い合わせ日時:" . date("Y-m-d H:i") . "\n"; 91$admin_reply_text .= "氏名:" . $_POST['name'] . "\n"; 92$admin_reply_text .= "メールアドレス:" . $_POST['mail'] . "\n"; 93$admin_reply_text .= "職種:" . $_POST['job'] . "\n\n"; 94$admin_reply_text .= "ご相談:" . $_POST['matter'] . "\n\n"; 95$admin_reply_text .= "詳細:" . $_POST['detail'] . "\n\n"; 96$admin_reply_text .= "企業名"; 97 98// 運営側へメール送信 99mb_send_mail( 'アドレス', $admin_reply_subject, $admin_reply_text, $header); 100 101?> 102 103<!-- 完了画面 --> 104<p>お問い合わせありがとうございます。</p> 105<p>内容を確認し3日以内にご連絡いたしますので今しばらくお待ちください。 106</p> 107<a href="index.html">トップページへ戻る</a> 108<?php } ?> 109</body> 110 111</html>

試したこと

迷惑メールに行っていないか確認しましたがきていませんでした。
コード内容の間違いが分からず、対策が分からず...

なお、コード中の本来運営側のアドレスが入っている部分は[アドレス]に変換してあります。

どなたかお力を貸していただけますと幸いです。
何卒よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

「確認→送信の流れ」でnameなどをPOSTしていないからでは。

<input type="hidden"> - HTML: HyperText Markup Language | MDN】
https://developer.mozilla.org/ja/docs/Web/HTML/Element/Input/hidden

投稿2020/04/30 15:18

kei344

総合スコア69400

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

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

退会済みユーザー

退会済みユーザー

2020/05/01 02:00

表示に使うだけで、フォーム再送信用データとしては送っていないとみえる。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問