特定の電子メール アドレスに送信するフォームを使用して、単純な Web サイトをセットアップしようとしています。アイデアは、電子メールで送信されるいくつかの異なるものを持つことです。たとえば、姓名、年齢、電子メール、都市、件名 (いくつかの異なるオプションを持つドロップダウン メニュー)、最後にコメント ボックスです。
私は実際に、フォームが送信されるように PHP スクリプトを適切に動作させる方法を読んだり調べたりするのに、過去 14 時間を費やしました。しかし、なぜか私はそれを理解することができません。
必要なものをすべて含めて送信するフォームを取得できないようです。以下のコードが機能しない理由を教えてください。
<?php
/* EMAIL RECIPIENT */
$myemail = "name@example.com";
/* Functions we used */
function check_input($data, $problem='')
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
if ($problem && strlen($data) == 0)
{
show_error($problem);
}
return $data;
}
/* Check all form inputs using check_input function */
$formName = check_input ($_POST['formName'], "Please enter your First Name");
$formSurname = check_input ($_POST['formSurname'], "Please enter your First Name");
$formAge = check_input ($_POST['formAge'],);
$formEmail = check_input ($_POST['formEmail'], "Please enter your email so we can get back to you");
$formIntent = check_input ($_POST['formIntent'], "Pleas choose a reason for why contact us");
$formIntent = " (MYFORM) " . $formIntent;
$formComment = check_input ($_POST['formComment']);
/* If e-mail is not valid show error message */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $formEmail))
{
show_error("E-mail address not valid");
}
/* The layout for the email and how it will be set up for reading the email. */
$message = "Hello!
Your contact form has been submitted by:
Name: $formName
Age: $formAge
City: $formCity
Email: $formEmail
Comment: $formName
The reason for contact with Mistral is: $formIntent
Comment: $formComment
End of message.
";
/* Send the message using the mail() function */
mail($myemail, $subject, $message);
/* Redirect visitors to the thank you page */
header('Location: ../thanks.html');
function show_error($myError)
{?>
<html>
<body>
<b>Please correct the following error:</b><br />
<?php echo $myError; ?>
</body>
</html>
<?php
exit();
}
?>