• 締切済み

PHPでメール入力画面→送信完了画面を作りたい

質問失礼します。 HPのメールフォーム作成に取り組んでいて、 メール入力画面→送信完了画面を作成したいです。 HTML,CSSの知識はあるのですが、 PHPの知識が全くなく調べながら作っています。 現状、送信用HTMLとphpファイルを使って、 HTMLファイルで入力した内容をメールアドレスまで飛ばすところまでは作成できました。 長くなるので簡易的に下に記述します。 【sendmail.php】 <?php mb_send_mail("メールアドレス","件名","$_POST["body"]","ヘッダー") ?> 【html】 <html> <form method="POST" action="sendmail.php"> <textarea name="body"></textarea> <input type="submit" value="送信"> </form> </html> 【動作】 入力画面で任意に内容を入力し、送信をクリック→真っ白の画面(メールアドレスに内容が届く) という状態です。 真っ白の画面を送信完了画面として表示するには、 【sendmail.php】ファイルに直接htmlを記述していくのが、 一般的な方法なのでしょうか。 いろいろと調べているのですが、どの方法が一般的で一番いい方法なのかを 探している段階です。 どなたかアドバイスをお願いします。 (確認画面、エラー画面は、現段階では抜きで、 とりあえず送信画面→送信完了画面を作りたいです。)

  • PHP
  • 回答数3
  • ありがとう数4

みんなの回答

  • taaaaaaa
  • ベストアンサー率38% (31/80)
回答No.3

好みによりますが、最初は1ファイルで始めるのがいいのではと思います。 個人的にはシンプルなものは1ファイル。 データベースなどを使うより複雑なものは3~4ファイルで運用しています。 特に正解はないと思います。

参考URL:
http://dou.moo.jp/download.html
papasu0545
質問者

お礼

無事機能しました!遅くなりましたが、ありがとうございました^^

  • 1minn
  • ベストアンサー率57% (52/90)
回答No.2

仕事として作ってる場合は、デザイナとプログラマの作業領域が分かれる部分なので、手っ取り早く別々に分ける場合が多いと思います。 入力画面: input.html 送信処理: sendmail.php 完了画面: sent.html とか。 なので、送信処理完了後に、エラーがなければ header('Location: sent.html'); って感じで飛ばしてしまうパターンが私は多いです。 (実際にはURL直打ちされた場合に、htmlだけでは対応できないのですべてPHPファイルにしてます)

papasu0545
質問者

お礼

無事機能しました!遅くなりましたが、ありがとうございました^^

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

>真っ白の画面を送信完了画面として表示するには、 >【sendmail.php】ファイルに直接htmlを記述していくのが、 >一般的な方法なのでしょうか。 そうですね。phpスクリプトは「ブラウザにhtmlソースを返す」のが基本です。 直接(phpを抜けて)記述するか、phpスクリプトでprintやechoで返すかは状況次第です。 (蛇足) >確認画面、エラー画面は、現段階では抜きで、 ということですが、入力フォームを表示するのも確認画面を表示するのもメールを送って完了画面を表示するのも、全部ひとつのスクリプトにまとめることも多いです。

papasu0545
質問者

お礼

無事機能しました!遅くなりましたが、ありがとうございました^^

関連するQ&A

  • PHPでメールを送信するには

    PHP超初心者です。 参考本をもとにPHPでメールを送信するということにチャレンジしているのですが、次のような文章が出ます。 Warning: mb_send_mail() [function.mb-send-mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\Program Files\Apache Group\Apache2\htdocs\php10\mail.php on line 11 エラー:送信に失敗しました 参考本に書いてあるとおり、 php.iniのSMTP=localhost を自分が使っているoooooo@ocn.ne.jpに書き換え、sendmailには自分の別アドレスを記述したのですが。 11行目のエラーも何を指しているのかわかりません。 ご回答よろしくお願いします。 【mail.php】 <html> <head><title>mail.php</title></head> <body> <?php $address=$_POST['address']; $subject=$_POST['subject']; $message=$_POST['message']; $header="Content-Type:text/plain;charset=iso-2022-jp"; mb_language("Japanese"); if(mb_send_mail($address, $subject, mb_convert_encoding($message,"JIS","EUC-JP"),$header)){ print("送信完了しました。"); }else{ print("エラー:送信に失敗しました"); } ?> </body> </html> 【mail_form.html】 <html> <head><title>メールの送信</title></head> <body> <h2>メールの送信</h2> <form action="mail.php" method="post"> 宛先:<input type="text" name="address"><br /> 件名:<input type="text" name="subject"><br /> 本文:<br /><textarea name="message" rows="5" cols="30"></textarea><br /> <input type="submit" value="送信"> </form> </body> </html>

    • ベストアンサー
    • PHP
  • PHP入力フォームから確認画面にいって送信する。という事がやりたいので

    PHP入力フォームから確認画面にいって送信する。という事がやりたいのですが、入力フォームと送信画面は作成できたのですが、その間の確認画面をどう作成したらよいかわからないので、質問致します。 1.入力フォーム(mail.htmlで作成) <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>sample</title> </head> <body> <form action="send.php" method="post"> 件名:<br> <input type="text" name="subject" size="30" value=""><br> 送信者名:<br> <input type="text" name="name" size="30" value=""><br> メールアドレス:<br> <input type="text" name="mail" size="30" value=""><br> 本文:<br> <textarea name="message" cols="30" rows="5"></textarea><br> <br> <input type="submit" value="送信する"> </form> </body> </html> 2.確認画面・・・ここが作成したいページです。 3.送信画面(send.phpで作成) <?php mb_language("Japanese"); mb_internal_encoding("UTF-8"); $message = "名前:" . $_POST["name"] . "\n本文:" . $_POST["message"]; if (!mb_send_mail("hoge@example.com", $_POST["subject"], $message, "From: " . $_POST["mail"])) { exit("メールの送信に失敗しました。"); } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>sample</title> </head> <body> <p>メールが送信されました。</p> </body> </html> という感じです。 やりたい事としては、第三者に入力フォームに入力してもらい、送信ボタンを押すと、入力内容はこれでよろしいですか?という画面が出て OKならば、そのまま送信。修正したい場合は戻るボタンでmail.htmlに戻り、修正する。その際の戻るボタンを押した場合は 入力した内容が消えていないこと。という事がやりたいのです。 「2.確認画面」のサンプルスクリプトを教えて頂けないでしょうか。 1と3も間違っているならご指摘下さい。よろしくお願い致します。

    • 締切済み
    • PHP
  • PHPメール送信画面(メールフォーム)

    こんにちは!PHPの勉強している学生です。 皆さん、お忙しいところ恐縮ですが、2つのファイル(下記のform.htmlとsend.php)でメール送信画面(メールフォーム)を作っています。大元はググって、無料ソースをコピーして、無料レンタルサーバーの@pageにFFFTP送信して確認致しました。 (1) 結果、送信ボタンを押した後、「メールが送信されました。」と表示はされるのですが、実際にはメールが送られてきません。ちなみに、test@mopera.netの部分に、NTTドコモで契約している自分のメールアドレスを入れました。お恥ずかしながら、A,無料サーバー側の問題なのか?、B,ドコモの設定の問題なのか?、C,メールフォームの問題なのか?分かりません。 ここに関しては、原因やソースコードをご教授頂ければ幸いです。 (2) またPHPのメールフォームでは、そもそもどの様な仕組みでメールが送られるのかが分かりません。 つまり、サーバーでメールを送っているにしても、受信のメールアドレスは何になるのでしょうか? メールフォームで入力した、メールアドレスから送られるのでしょうか? 素人なので検討がつきませんが、より良いソースコード等がありましたらお知らせ下さいませ。 どうぞ宜しくお願い致します。 ■form.html■ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>sample</title> </head> <body> <form action="send.php" method="post"> 件名(タイトル):<br /> <input type="text" name="subject" size="30" value="" /><br /> 送信者名:<br /> <input type="text" name="name" size="30" value="" /><br /> メールアドレス:<br /> <input type="text" name="mail" size="30" value="" /><br /> 本文:<br /> <textarea name="message" cols="30" rows="5"></textarea><br /> <br /> <input type="submit" value="送信する" /> </form> </body> </html> ■send.php■ <?php $message = "名前:" . $_POST["name"] . "\n本文:" . $_POST["message"]; if (!mb_send_mail("test@mopera.net", $_POST["subject"], $message, "From: " . $_POST["mail"])) { exit("error"); } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>sample</title> </head> <body> <p>メールが送信されました。</p> <p><a href="top.html">戻る</a></p> </body> </html>

    • ベストアンサー
    • PHP
  • PHPで内容確認画面表示後メールに内容が届かない

    PHPを独学で勉強中なのですが、フォームで入力した項目(名前、住所、メールアドレスなど)をPHPで作成した確認画面に内容を反映後、その内容をメールで送信すると内容は送信されてなくメールフォームだけが送信されてしまいます?? 確認画面の内容と同じ文を送信送信して、メールの本文に確認画面と同じ内容をいれるにはどうすればいいのでしょうか?教えてください。よろしくお願いします。 流れ 入力画面(inquiry.html) ⇒ 確認画面(sendmail01.php) ⇒ 送信画面(sendmail02.php) 各画面のソースを一部掲載しました。 【入力画面】 <form action="sendmail01.php" method="POST" name="fmck" onSubmit="return checkSB()"> <tr> <td width="130"><div align="center">氏名</div></td> <td width="430"><input type="text" name="name" size="25" class="zenk1"> ※必須事項</td> </tr> <tr> <td width="130"><div align="center">住所</div></td> <td width="430"><input type="text" name="address" size="60" class="zenk1"> ※必須事項</td> </tr> <tr> <td colspan="2" height="50"><div align="center"><input type="submit" value="入力内容のご確認">   <input type="reset" value="入力内容のクリア"></div></td> </tr></form> 【確認画面】 <tr> <td width="130"><div align="center">氏名</div></td> <td width="430"><?php echo $_POST["name"] ?></td> </tr> <tr> <td width="130"><div align="center">住所</div></td> <td width="430"><?php echo $_POST["address"] ?></td> </tr> <tr> <td colspan="2" height="50"> <form action="sendmail02.php" mane="fmck" method="POST"><div align="center"><input type="submit" value="送信する">    <input type="button" value="前画面に戻る" onClick="history.back()"></div></form></td> </tr> 【送信画面】 // メールを送信するアドレス設定(複数指定する場合は「,」で区切る) $to = "abc@yahoo.co.jp"; // 送信するメールの件名を設定 $subject = "メールフォームお問い合わせ"; // メール本文のヘッダーを設定 $body = "###### お問い合わせ ######" . "\n\n"; // 送信結果をお知らせする変数を初期化する $message = ''; // 投稿内容の取得 $name= $_POST["name"]; $address= $_POST["address"]; // メールのレイアウトの編集 $header = "From:" .$name ." <" .$email .">"; $body .= "お問い合わせがありました。対応よろしくお願いします。" ."\n\n"; $body .= "送信日時:". date( "Y/m/d (D) H:i:s", time() ) ."\n\n"; $body .= "----- お問い合わせ情報 -------------------------" ."\n"; $body .= "■氏名:" .$name ."\n"; $body .= "■フリガナ:" .$address ."\n"; if (mb_send_mail($to,$subject,$body,$header)) { $message = "メール送信は無事に終了しました。 お問い合わせありがとうございました。"; } else { $message = "メール送信は失敗しました。"; }

    • 締切済み
    • PHP
  • phpのメール送信での質問になります

    メールとお問い合わせ内容は届くのですが、名前とアドレスが届かないので間違っている箇所を教えていただけるとありがたいです。 以下コードになります。 html <body> <main> <section> <h2>お問合せ内容の確認</h2> <form action="mailto.php" method="post"> <div class="contant-area"> <div class="label-container"> <label class="item intem-name">名前</label> <label class="item item-email">メールアドレス</label> <label class="item item-message">問い合わせ内容</label> </div> <div class="text"> <p class="item-post" name="name"><?php echo $_POST["name"]; ?></p> <p class="item-post" name="email"><?php echo $_POST["email"]; ?></p> <textarea class="item-post item-textarea" name="message"><?php echo $_POST["message"]; ?></textarea> </div> </div> <div class="button-area"> <input type="submit" value="送信"> </div> </form> </section> </main> </body> php <?php // フォームデータの取得 $name = $_POST[&#039;name&#039;]; $email = $_POST[&#039;email&#039;]; $message = $_POST[&#039;message&#039;]; // 送信先のメールアドレス $to = &#039;*****@gmail.com&#039;; // 件名 $subject = &#039;お問い合わせがありました&#039;; // メール本文 $body = "名前: $name\n"; $body .= "メールアドレス: $email\n"; $body .= "問い合わせ内容:\n$message"; // 送信元のメールアドレスと名前 $from = &#039;*****1690.xsrv.jp&#039;; $fromName = &#039;お問い合わせフォーム&#039;; // ヘッダー $headers = "From: $fromName <$from>"; // メール送信 $mailResult = mail($to, $subject, $body, $headers); ?>

    • ベストアンサー
    • PHP
  • PHP 確認画面から入力画面に戻ると入力したデータが消える。

    PHPプログラム初心者です。 現在フォームに入力したデータをPHPのmail()関数を使用して特定のメールアドレスへ送信するプログラムを作成しています。 プログラムの流れとしては、 入力画面 ↓ 確認画面 ↓ 送信完了画面(メールでデータ送信) ここで問題があるのですが、確認画面で入力ミスが見つかりブラウザーの「戻る」ボタンで入力画面に再度戻った場合、入力したデータが全て消えてしまいます(ブラウザーはIE。)。どうすれば、確認画面から入力画面に戻っても入力したデータが消えないようにできるのでしょうか? データの引渡しをGETではなくPOSTにすればよいだけですか? また、現在データの引渡しにはセッションではなくtype=hiddenを使用しているのですが、これも関係しているのでしょうか? よろしくお願いします

    • ベストアンサー
    • PHP
  • phpを使ってのメール送信について

    会社のホームページを任されて、phpでメールフォームを作成中です。 phpは本を購入したり、サイトを閲覧しながら勉強中ですが時間が取れず、まださほど詳しくありません。 1.情報入力→2.確認画面→3.お礼画面 と3頁を作ってそれぞれ確認しましたところ、入力情報は受け渡しができました。 その後、メールアドレスへ入力していただいた情報を送るプログラムを見様見真似で作ってみたところ動かなくなってしまいました。 どこがおかしいのか添削・ご意見(できれば初心者にもわかるように)いただけないでしょうか。 よろしくお願いします。 <p>入力内容</p> <form method="POST" action="(3.のページへのパス)"> <table border="1" width="80%" cellspacing="5"> <tr><td align="right" width="20%">お名前:</td> <td align="left" width="80%"><?php print($_POST['name']);?></td></tr> <tr><td align="right">e-mail:</td> <td align="left"><?php print($_POST['mail']);?></td></tr> <tr><td align="right">お問い合わせ:</td> <td align="left"><?php print($_POST['comment']);?></td></tr> </table> <p></p> <input type="submit" name="Submit" value="送信"> </form> ↑ここまでが確認画面でこの下にすぐ続けて <?php $name = $_POST['name']; $mail = $_POST['mail']; $comment = $_POST['comment']; $to = '(送信先メールアドレス)'; $subject = 'サイトからの問い合わせ内容'; $massage = '$name . $mail . $comment'; if(!$_POST['submit']){ mb_language("Japanese"); mb_internal_encoding("UTF-8"); $header = 'From: ' . $from . "\n"; $to = mb_encode_mimeheader(mb_convert_encoding($name, "JIS", "UTF-8")) . ' <' . $mail . '>'; $param = '-f' . $from; mb_send_mail($to, $subject, $message, $header, $param); } ?> ↑2頁めに挿入したメールへの送信指示の(つもりの)部分です。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • フォームからメール送信

    いつも参考にさせて頂いています。 現在メールフォームを作っていまして、Javascriptで作成したフォームからphpで作った確認画面へ遷移(form action=...phpにて)し、確認画面の送信ボタンをクリックした時点で指定したメールアドレスへ内容を送信 という流れで考えています。post変数をphpで受け取って確認画面を表示するところまではいいのですが、確認画面の内容をメールアドレスに送信するにはどうしたらいいのでしょうか? まだまだ初心者ですので噛み砕いて説明頂けば幸いです。 どうか宜しくお願いします

    • ベストアンサー
    • PHP
  • phpでメール送信

    phpでメール送信を行ってもメールが来ません。 普通のメールアドレスです。使っているサーバーはちゃんとphpが つかえるようです。ソースは下記です。訂正するところなどありまし たらよろしくお願いします。 ソース:(ホーム)<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>sample</title> </head> <body> <form action="1.php" method="post"> ホームページの名前:<br> <input type="text" name="subject" size="30" value=""><br> ホームページのアドレス:<br> <input type="text" name="name" size="30" value=""><br> メールアドレス:<br> <input type="text" name="mail" size="30" value=""><br> ホームページの紹介文:<br> <textarea name="message" cols="30" rows="5"></textarea><br> <br> <input type="submit" value="送信する"> </form> </body> </html> 送信側:<?php mb_language("Japanese"); mb_internal_encoding("SHIFT-JIS"); $message = "ホームページのアドレス:" . $_POST["name"] . "\nホームページの紹介文:" . $_POST["message"]; if (!mb_send_mail("めーるアドレス@メールアドレス.jp", $_POST["subject"], $message, "From: " . $_POST["mail"])) { exit("メールの送信に失敗しました。"); } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>sample</title> </head> <body> <p>メールが送信されました。</p> </body> </html>

  • Firefoxだとメールフォーム送信出来ない

    PHPで作成されたJavascriptのメール送信フォームにて、 IE等のブラウザではフォームの送信が出来るのですが、 Firefoxのみソースの読み込みに失敗します。 以下ブラウザのHTMLソースとFirebugで表示されたエラー内容です。 ≪ソース≫ <SCRIPT TYPE="text/javascript"> <!-- //メール送信 function sendmail(){ form1.sendflg.value = 1; form1.method = "POST"; form1.action = "エイチティティーピー://www.xxx.xx/xxx/form-xxx.php"; form1.submit(); } //戻って修正 function sendmail_back(){ form1.method="post"; form1.action="エイチティティーピー://www.xxx.xx/xxx/form-xxx2.php"; form1.submit(); } --> </SCRIPT> ≪Firebugエラーの内容≫ form1 is not defined [このエラーでブレーク] ソースの読み込みに失敗: エイチティティーピー://www.xxx.xx/xxx/form-xxx.php form-xxx.php (xx行目) 当方まだ知識がおぼつかない状態の為、 原因、調査のヒント等、何かお解りの方がいらっしゃいましたら、宜しくお願い致します。

専門家に質問してみよう