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

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

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

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

Q&A

解決済

2回答

417閲覧

問い合わせフォーム 完了通知メールに入力内容が入らない

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

0グッド

0クリップ

投稿2018/12/10 07:38

編集2018/12/10 09:44

入力ページと確認ページと完了ページを下記サイトを参考に作成しているのですが、
確認ページ後送信ボタンを押すと完了ページが上手く表示されずにメールも届くのですが、中身の入力した項目内容が入っていない状態で届きます。
https://designsupply-web.com/knowledgeside/1644/

入力ぺージ

php

1<form id="mail-form" action="./confirm.php" method="post"> 2 <dl> 3 <dt>会社名<span class="hissu">必須</span></dt> 4 <dd> 5 <input type="text" class="validate required" id="company" name="company" value="" placeholder="株式会社〇〇〇"> 6 <span class="error_required"></span> 7 <span class="error_company"></span> 8 </dd> 9 </dl> 10 <dl> 11 <dt>住所</dt> 12 <dd><input type="text" class="" id="address" name="address" value="" size="50"> 13 <span class="error_required"></span> 14 <span class="error_address"></span> 15 </dd> 16 </dl> 17 <dl> 18 <dt>ご担当者 氏名<span class="hissu">必須</span></dt> 19 <dd><input type="text" class="validate required" id="name" size="50" name="name" value="" placeholder="山田 花子"> 20 <span class="error_required"></span> 21 <span class="error_name"></span> 22 </dd> 23 </dl> 24 <dl> 25 <dt>電話番号<span class="hissu">必須</span></dt> 26 <dd><input type="text" class="validate required tel" id="tel" size="50" name="tel" value="" size="14" maxlength="14" placeholder="091-123-4567"> 27 <span class="error_tel"></span> 28 </dd> 29 </dl> 30 <dl> 31 <dt>メールアドレス<span class="hissu">必須</span></dt> 32 <dd> 33 <input type="text" value="" size="50" name="email" class="email validate required"/> 34 </dd> 35 </dl> 36 <dl> 37 <dt>お問い合わせ内容<span class="hissu">必須</span></dt> 38 <dd><textarea id="message" class="validate required" name="message" value="" rows="5" cols="50"></textarea> 39 <span class="error_required"></span> 40 </dd> 41 </dl> 42 <button type="input-submit-check" id="input-submit-check" value="input-submit-check" name="input-submit-check">同意し、確認画面へ</button> 43 </form>

確認ページ

php

1<?php 2 $postData = $_POST; 3 $page_flag = 0; 4 $error = array(); 5 function formValidation($postData) { 6 $error = array(); 7 if(empty($postData['company'])) { 8 $error[] = "会社名を入力してください"; 9 } 10 if(empty($postData['name'])) { 11 $error[] = "お名前を入力してください"; 12 } else if(!preg_match('/^[ぁ-んァ-ヶー一-龠  \r\n\t]+$/',$postData['name'])) { 13 $error[] = "お名前は全角文字で入力してください"; 14 } 15 if(empty($postData['email'])) { 16 $error[] = "メールアドレスを入力してください"; 17 } else if(!preg_match('/^([a-zA-Z0-9])+([a-zA-Z0-9._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9._-]+)+$/',$postData['email'])) { 18 $error[] = "メールアドレスを正しく入力してください"; 19 } 20 if(empty($postData['tel'])) { 21 $error[] = "電話番号を入力してください"; 22 } else if(!preg_match('/^0\d{1,4}-\d{1,4}-\d{3,4}$/',$postData['tel'])) { 23 $error[] = "電話番号を正しく入力してください"; 24 } 25 if(empty($postData['message'])) { 26 $error[] = "問い合わせ内容を入力してください"; 27 } else if(!preg_match('/^[ぁ-んァ-ヶー一-龠]+$/',$postData['message'])) { 28 $error[] = "全角文字で入力してください"; 29 } 30 return $error; 31 } 32 $error = formValidation($postData); 33 if(empty($postData['input-submit-check']) || !empty($error)) { 34 $page_flag = 1; 35 } else { 36 $page_flag = 0; 37 } 38?> 39 40<form id="confirm" action="./send.php" method="post"> 41 <input type="hidden" name="company" value="<?php echo $company; ?>"> 42 <input type="hidden" name="address" value="<?php echo $address; ?>"> 43 <input type="hidden" name="name" value="<?php echo $name; ?>"> 44 <input type="hidden" name="email" value="<?php echo $email; ?>"> 45 <input type="hidden" name="tel" value="<?php echo $tel; ?>"> 46 <input type="hidden" name="message" value="<?php echo $message; ?>"> 47 48 <?php if($page_flag == 1): ?> 49<ul class="error"> 50 <?php foreach( $error as $value ): ?> 51 <li><?php echo $value; ?> 52 </li> 53 <?php endforeach; ?> 54</ul> 55<?php endif; ?> 56 <dl> 57 <dt> 58 <label>会社名</label> 59 </dt> 60 <dd><?php echo htmlspecialchars($_POST['company'], ENT_QUOTES, 'UTF-8'); ?></dd> 61 </dl> 62 <dl> 63 <dt> 64 <label>住所</label> 65 </dt> 66 <dd><?php echo htmlspecialchars($_POST['address'], ENT_QUOTES, 'UTF-8'); ?></dd> 67 </dl> 68 <dl> 69 <dt> 70 <label>ご担当者 氏名</label> 71 </dt> 72 <dd><?php echo htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8'); ?></dd> 73 </dl> 74 <dl> 75 <dt> 76 <label>電話番号</label> 77 </dt> 78 <dd><?php echo htmlspecialchars($_POST['tel'], ENT_QUOTES, 'UTF-8'); ?></dd> 79 </dl> 80 <dl> 81 <dt> 82 <label>メールアドレス</label> 83 </dt> 84 <dd><?php echo htmlspecialchars($_POST['email'], ENT_QUOTES, 'UTF-8'); ?></dd> 85 </dl> 86 <dl> 87 <dt> 88 <label>お問い合わせ内容</label> 89 </dt> 90 <dd><?php echo htmlspecialchars($_POST['message'], ENT_QUOTES, 'UTF-8'); ?></dd> 91 </dl> 92 <div class="btnBlock"> 93 <p class="btn02"><a class="button" value="内容を修正する" onclick="history.back(-1)"><span>内容を修正する</span></a></p> 94 95 <?php 96 if($page_flag == 0) { 97 echo '<button type="submit" id="submit" name="submit">送信する</button>'; 98 } 99?> 100 </div> 101 </form> 102

完了ページ

php

1<?php 2session_start(); 3if(!$_SESSION){ 4 header('Location: ./input.php'); 5} 6 $company = $_POST["company"]; 7 $address = $_POST["address"]; 8 $name = $_POST["name"]; 9 $email = $_POST["email"]; 10 $tel = $_POST["tel"]; 11 $message = $_POST["message"]; 12$add_header ="From:info@\n"; 13$add_header .= "Reply-to: info@\n"; 14$add_header .= "X-Mailer: PHP/". phpversion(); 15//自動返信メール本文 16$messageuser = sprintf("%s",$name); 17$messageuser .= " 様\n\n"; 18$messageuser .= "この度はお問い合わせいただき誠にありがとうございます。\n\n"; 19$messageuser .= "下記の内容でお問い合わせを承りました。\n\n\n"; 20$messageuser .= "================================\n\n"; 21$messageuser .= sprintf("会社名:%s\n",$company); 22$messageuser .= sprintf("住所:%s\n",$address); 23$messageuser .= sprintf("お名前:%s\n",$name); 24$messageuser .= sprintf("メールアドレス:%s\n",$email); 25$messageuser .= sprintf("電話番号:%s\n",$tel); 26$messageuser .= sprintf("お問い合わせ内容:%s\n",$message); 27$messageuser .= "================================\n\n"; 28//管理者確認用メール本文 29$messageadmin = "フォームより下記の内容でお問い合わせがありました。\n\n\n"; 30$messageadmin .= "================================\n\n"; 31$messageadmin .= sprintf("会社名:%s\n",$company); 32$messageadmin .= sprintf("住所:%s\n",$address); 33$messageadmin .= sprintf("お名前:%s\n",$name); 34$messageadmin .= sprintf("メールアドレス:%s\n",$email); 35$messageadmin .= sprintf("電話番号:%s\n",$tel); 36$messageadmin .= sprintf("お問い合わせ内容:%s\n",$message); 37$messageadmin .= "================================\n\n"; 38//メール設定 39mb_language("ja"); 40mb_internal_encoding("UTF-8"); 41//自動返信メール送信設定 42mb_send_mail($email,"お問い合わせありがとうございます",$messageuser,$add_header); 43//管理者確認用メール送信設定 44mb_send_mail("info@","コンタクトフォームよりお問い合わせがありました",$messageadmin,$add_header); 45session_destroy(); 46?>

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

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

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

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

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

kei344

2018/12/10 09:57

まだ質問が「受付中」になっていますが、「ベストアンサー」を選び「解決済」にされてはいかがでしょうか。
guest

回答2

0

確認ページで$postData['message']にデータが入っているのに、
formになぜか$messageを詰めてるのが原因。

投稿2018/12/10 11:06

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

ベストアンサー

確認ページの以下部分の閉じ忘れとか??

PHP

1//<input type="hidden" name="message" value="<?php echo $messag 23<input type="hidden" name="message" value="<?php echo $messag; ?>">

追記

PHP

1<input type="hidden" name="company" value="<?php echo $postData['company']; ?>"> 2<input type="hidden" name="address" value="<?php echo $postData['address']; ?>"> 3<input type="hidden" name="name" value="<?php echo $postData['name']; ?>"> 4<input type="hidden" name="email" value="<?php echo $postData['email']; ?>"> 5<input type="hidden" name="tel" value="<?php echo $postData['tel']; ?>"> 6<input type="hidden" name="message" value="<?php echo $postData['message']; ?>">

投稿2018/12/10 07:55

編集2018/12/10 08:23
mayoi_maimai

総合スコア1583

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

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

退会済みユーザー

退会済みユーザー

2018/12/10 08:01

コメントありがとうございます。コピーする際に誤りがありましたので、すいません、修正しました。 確認時は、閉じ忘れがない状態です。
mayoi_maimai

2018/12/10 08:17 編集

承知しました、ちなみに確認画面のソース内でhiddenに値はちゃんとセットされていますでしょうか?? register_globalsがonならばその記述でもセットされていると思いますが、$message等を代入していないように思います。 受け取り方はともかくpostデータが$postDataに入っているので以下のような感じでちゃんとhiddenにセットされていれば大丈夫だと思います。 <input type="hidden" name="message" value="<?php echo $message; ?>"> ↓ <input type="hidden" name="message" value="<?php echo $postData['message']; ?>">
退会済みユーザー

退会済みユーザー

2018/12/10 08:39

ありがとうございます。 自動返信メールの方には、入るようになったのですが、管理者確認用メールには、データが入りませんでした。
mepon

2018/12/10 08:50

「管理者確認用メール送信設定」で$messageadminをメールbodyとしていますが メール本文で$messageuserを使用しているので中身がない状態になってますね。 管理者用の本文の変数をadminにしてあげましょう
mayoi_maimai

2018/12/10 08:54

変数名が$messageuserになってますね。。 こちらをmessageadminに直せば大丈夫だと思いますよ。
退会済みユーザー

退会済みユーザー

2018/12/10 09:06

コメントありがとうございます。管理者部分をmessageadminに変更しました。しかし、メールには、やはりデータが入っていない状態です。自動返信メールも届かなくなりました。
mepon

2018/12/10 09:34

上記に書いた変数名はメールが届かない事となんら関係はありません。 そもそもメールが届かないということは、完了ページで変数に代入時に既に値が空だと思います。 貴方の環境は分かりませんが、デバッグできるのならばどこでデータが消失しているのか調べるべきです。 一つ気になったのは、完了ページの変数で先ほどは$_POSTから取ってたみたいですが ここを$postDataに変更した理由はなんですか?
mayoi_maimai

2018/12/10 09:34

完了ページの以下部分(部分代入部分)は前のままでよかったのですが直しました?? $company = $postData["company"]; ここは$_POSTで受けないと中身が空っぽなのでエラーになったのでは?
mayoi_maimai

2018/12/10 09:41

被ってしまいました。。
退会済みユーザー

退会済みユーザー

2018/12/10 09:42

ありがとうございます。メールの内容にデータが入るようになりました。 本当に助かりました。
mepon

2018/12/10 09:45

>mayoi_maimaiさん 回答につらつらとコメントしてしまい申し訳なかったです。。 >mika160625さん 解決したようで何よりです
mayoi_maimai

2018/12/10 09:50

meponさん ちょっと出先だったので助かりました(о´∀`о) >mika160625さん これからも頑張って下さい(о´∀`о)
退会済みユーザー

退会済みユーザー

2018/12/10 13:07

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問