同一サイト内で2つの異なるフォームの実装

実現したいこと

1つのサイトでメールフォームとアンケートフォームを別ページで1つずつ用意し、正常に送受信を行いたいです。

●メールフォーム
contact.php内にメールフォーム設置 → 送信 → confirmA.php完了ページへ
アドレスAでメール受信

●アンケートフォーム
qa.php内にアンケートフォーム設置 → 送信 → confirmB.php完了ページへ
アドレスBでメール受信

発生している問題・分からないこと

アンケートフォームとメールフォームは、どちらとも実装済みで送受信は出来ている状態です。

しかし、メールフォームから入力内容を送信するとアドレスAのみに送信されるはずが、アンケートフォームのアドレスB宛にもメールが送信されてしまいます。
このとき、アドレスB宛に送信されるメール内容は、メールフォーム用に用意したメール内容ではなく、アンケートフォーム用に用意したメール内容が届き、$_POSTの値が空の状態です。

▼メールフォーム送信時に受信されるメール内容
●メールフォーム用アドレスA
名前 山田太郎
住所 東京都●●●●●
電話番号 00000000000

●アンケートフォーム用アドレスB
Q1休日はなにをしていますか?
(空白 $_POSTの値なし)
Q2食べ物は何が好きですか?
(空白 $_POSTの値なし)

タグで設定するactionの値はconfirmA,Bと別々で設定していて、送信時はそれぞれのファイルのみが実行される認識でした。 POST送信の関係上、一つのサイトでフォームを2つ用意する場合に何か考えなければならないことがあるのでしょうか。

エラーメッセージ

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 コメント