フォームまとめ
エラーチェックの無い場合
《input.php》
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>メールフォーム</title> <style> section { width: 500px; margin: auto; text-align: center; } table { text-align: left; } td { padding: 3px; } </style> </head> <body> <section> <h1>入力画面</h1> <p>必要事項を入力して「確認する」ボタンをクリックしてください。</p> <form method="POST" action="check.php"> <table border="0"> <tr> <td>お名前</td> <td><input type="text" name="uname" size="50"></td> </tr> <tr> <td>メールアドレス</td> <td><input type="text" name="email" size="50"></td> </tr> <tr> <td>メッセージ</td> <td> <textarea rows="5" cols="45" name="message"></textarea> </td> </tr> </table> <input type="submit" name="sub1" value="確認する"> </form> </section> </body> </html>
《chech.php》
<?php // フォームデータが空の場合は処理終了 if (empty($_POST)) { echo "処理終了"; exit; } // セッションの開始 session_start(); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>メールフォーム</title> <style> section { width: 500px; margin: auto; text-align: center; } table { text-align: left; } td { padding: 3px; } </style> </head> <body> <section> <h1>確認画面</h1> <p>内容を確認してください。</p> <?php // 入力値のチェック if (empty($_POST["uname"])) { echo "お名前を入力してください。"; exit; } if (empty($_POST["email"])) { echo "メールアドレスを入力してください。"; exit; } if (empty($_POST["message"])) { echo "メッセージを入力してください。"; exit; } // 入力値の取得・加工 $uname = htmlspecialchars($_POST["uname"], ENT_QUOTES, "UTF-8"); $email = htmlspecialchars($_POST["email"], ENT_QUOTES, "UTF-8"); $message = htmlspecialchars($_POST["message"], ENT_QUOTES, "UTF-8"); $_SESSION["uname"] = $uname; $_SESSION["email"] = $email; $_SESSION["message"] = $message; ?> <form method="POST" action="submit.php"> <table border="0"> <tr> <td>お名前</td> <td width="300"><?php echo $uname; ?></td> </tr> <tr> <td>メールアドレス</td> <td width="300"><?php echo $email; ?></td> </tr> <tr> <td>メッセージ</td> <td width="300"><?php echo nl2br($message); ?></td> </tr> <tr> <td align="right" colspan="2"> <input type="submit" name="sub1" value="送信する"> </td> </tr> </table> <!-- hiddenフィールドは不要 --> </form> </section> </body> </html>
《submit.php》
<?php // フォームデータが空の場合は処理終了 if (empty($_POST)) { echo "処理終了"; exit; } // セッションの開始 session_start(); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>メールフォーム</title> <style> section { width: 500px; margin: auto; text-align: center; } table { text-align: left; } td { padding: 3px; } </style> </head> <body> <section> <h1>完了画面</h1> <?php // 入力値の取得・加工 $uname = htmlspecialchars($_SESSION["uname"], ENT_QUOTES, "UTF-8"); $email = htmlspecialchars($_SESSION["email"], ENT_QUOTES, "UTF-8"); $message = htmlspecialchars($_SESSION["message"], ENT_QUOTES, "UTF-8"); // メール本文の組み立て mb_language("ja"); mb_internal_encoding("UTF-8"); $subject = "お問い合せを受け付けました。"; $to = "webtrafelica@gmail.com, {$email}"; $title = "【メールフォームより】"; $body = <<<EOM -------------------------------------------------- 【Webサイトからのメール】 お名前:{$uname} メールアドレス:{$email} メッセージ:{$message} -------------------------------------------------- EOM; // メール送信の実行 $rc = mb_send_mail($to, $title, $body); if (!$rc) { exit; } else { $_SESSION = NULL; } ?> <!-- 処理結果を表示 --> <p>以下の内容を受けたまわりました。</p> <table border="0"> <tr> <td>お名前</td> <td width="300"><?php echo $uname; ?></td> </tr> <tr> <td>メールアドレス</td> <td width="300"><?php echo $email; ?></td> </tr> <tr> <td>メッセージ</td> <td width="300"><?php echo nl2br($message); ?></td> </tr> </table> </section> </body> </html>