実現したいこと
1つのサイトでメールフォームとアンケートフォームを別ページで1つずつ用意し、正常に送受信を行いたいです。
●メールフォーム
contact.php内にメールフォーム設置 → 送信 → confirmA.php完了ページへ
アドレスAでメール受信
●アンケートフォーム
qa.php内にアンケートフォーム設置 → 送信 → confirmB.php完了ページへ
アドレスBでメール受信
発生している問題・分からないこと
アンケートフォームとメールフォームは、どちらとも実装済みで送受信は出来ている状態です。
しかし、メールフォームから入力内容を送信するとアドレスAのみに送信されるはずが、アンケートフォームのアドレスB宛にもメールが送信されてしまいます。
このとき、アドレスB宛に送信されるメール内容は、メールフォーム用に用意したメール内容ではなく、アンケートフォーム用に用意したメール内容が届き、$_POSTの値が空の状態です。
▼メールフォーム送信時に受信されるメール内容
●メールフォーム用アドレスA
名前 山田太郎
住所 東京都●●●●●
電話番号 00000000000
●アンケートフォーム用アドレスB
Q1休日はなにをしていますか?
(空白 $_POSTの値なし)
Q2食べ物は何が好きですか?
(空白 $_POSTの値なし)
エラーメッセージ
error
1エラーメッセージなし
該当のソースコード
//contact.php session_start(); $_SESSION['contact'] = true; <form method="post" action="contact_end.php"> <table> <tr> <th>お名前</th> <td><input type="text" name="name" required/></td> </tr> <tr> <th>ご住所</th> <td><input type="text" name="address" required/></td> </tr> <tr> <th>メール</th> <td><input type="email" name="email" required></td> </tr> </table> <input type="submit" value="送信"/> </form>
//contact_end.php $home_url = 'test.jp'; //ドメイン $admin_mail = "admin@test.jp"; //管理者受信用アドレス $send_mail = "info@test.jp"; //送信用アドレス session_start(); if( !empty($_SESSION['contact']) && $_SESSION['contact'] === true ) { unset($_SESSION['contact']); $name = $_POST["name"]; $address = $_POST["address"]; $email = $_POST["email"]; if($admin_mail){ // 管理者宛 $recipient = $admin_mail; $subject = 'お問い合わせがありました。'; $mailheader = 'From:'.mb_encode_mimeheader('テストサイト管理者').'<'.$send_mail.'>'."\n"; $mailheader.= 'Errors-To:'.$send_mail."\n"; $mailheader.= 'Reply-To:' .$email."\n"; $mailheader.= 'Content-Type:text/plain;charset=ISO-2022-JP'; $mailbody = "---------------------------------\n"; $mailbody.= "▼ お問い合わせ内容\n"; $mailbody.= "---------------------------------\n"; $mailbody.= "\n"; $mailbody.= '■名前'."\n"; $mailbody.= $name . "\n"; $mailbody.= '■ご住所' . "\n"; $mailbody.= $address . "\n"; $mailbody.= '■お電話' . "\n"; $mailbody.= $tel . "\n"; $mailbody.= '■メールアドレス'."\n"; $mailbody.= $email."\n"; $mailbody = mb_convert_kana($mailbody, "KV"); mb_send_mail($recipient, $subject, $mailbody, $mailheader); // ユーザー宛 $recipient = $email; $subject = 'お問い合わせありがとうございます。'; $mailheader = 'From:'.mb_encode_mimeheader('テストサイト管理者').'<'.$send_mail.'>'."\n"; $mailheader.= 'Errors-To:'.$send_mail."\n"; $mailheader.= 'Reply-To:' .$admin_mail."\n"; $mailheader.= 'Content-Type:text/plain;charset=ISO-2022-JP'; $mailbody = "---------------------------------\n"; $mailbody.= "▼ お問い合わせ内容\n"; $mailbody.= "---------------------------------\n"; $mailbody.= "\n"; $mailbody.= '■名前'."\n"; $mailbody.= $name . "\n"; $mailbody.= '■ご住所' . "\n"; $mailbody.= $address . "\n"; $mailbody.= '■お電話' . "\n"; $mailbody.= $tel . "\n"; $mailbody.= '■メールアドレス'."\n"; $mailbody.= $email."\n"; mb_send_mail($recipient, $subject, $mailbody, $mailheader); } }else { $_POST = []; header("Location: $home_url"); }
試したこと・調べたこと
上記の詳細・結果
調べてみたものの分かりませんでした。
補足
特になし
0 コメント