私はHTMLフォームを作成しようとしています。PHP検証フォームがメールを送信しない
私のフロントエンドのコードはこれです: 個人用サイト:アクションが戻って私のsummuryと、以下のURLを持つ空白のページをリターンをトリガしたときにそう
<?php
$nameErr = $emailErr = $commentErr = $subjectErr = "";
$name = $email = $comment = $subject = "";
$feedbackmsg = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (isset($_POST['submit'])) {
if (empty($_POST["name"])) {
$nameErr = "*Name is required";
} else {
$name = validate($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/", $name)) {
$nameErr = "*Only letters and white space allowed";
}
}
if (empty($_POST["subject"])) {
$subjectErr = "*Subject is required";
} else {
$subject = validate($_POST["subject"]);
if (!preg_match("/^[a-zA-Z ]*$/", $subject)) {
$SubjectErr = "*Only letters and white space allowed";
}
}
if (empty($_POST["email"])) {
$emailErr = "*Email is required";
} else {
$email = validate($_POST["email"]);
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email)) {
$emailErr = "*Invalid email format";
}
}
if (empty($_POST["comment"])) {
$commentErr = "*Write Me something";
} else {
$comment = validate($_POST["comment"]);
}
if (empty($nameErr) && empty($emailErr) && empty($commentErr)) {
$to = "[email protected]";
$subject = $name;
mail($to, $subject, $comment, $email);
$feedbackmsg = "Your message has sent,<br> thanks";
}
}
}
:
<form action="/form_validation.php" target="_blank">
<p><input class="w3-input w3-padding-16" type="text" placeholder="name" required name="name"></p>
<p><input class="w3-input w3-padding-16" type="text" placeholder="email" required name="email"></p>
<p><input class="w3-input w3-padding-16" type="text" placeholder="subject" required name="subject"></p>
<p><input class="w3-input w3-padding-16" type="text" placeholder="comment" required name="comment"></p>
<p>
<button class="w3-button w3-light-grey w3-padding-large" type="submit">
<i class="fa fa-paper-plane"></i> SEND MESSAGE
</button>
</p>
</form>
<p><?php echo $feedbackmsg;?></p>
とファイルform_validation.php
はこれを含んでいます.com/form_validation.php?name = anastasios & email = myemail%40hotmail.com &件名= mysubject &コメント= ena + dio + ena + dio
私はこのshoyldが正常だと思います。それは正常に動作する場合、なぜ私は電子メールを持っていないのですか? 考えていますか?おかげで、あなたのロジックのすべてがこの条件に包まれて
ああそうでも、私はurl mysite.com/form_validation.phpで新しい空白のページを取得し、まだメールを取得しません。 "action =" form_validation "の代わりに 私はaction =" <?php mail()?> "を試み、電子メールを取得していますが、要約はありません。もちろん、私はそのような方法で電子メールを受け取るのは妥当ではありませんが、私のフォームが確実に動作するように他の方法を試みるだけでした。 – fxp869
@ fxp869:いくつかのデバッグを行います。何も出力しないので、ページは空白です。 (またはエラーがあり、エラー報告がオンになっていないため)PHPログをチェックし、ロジックをテストするために何らかの出力を追加します。あなたのコードは完全に動作するか、仕事。あなたはそれをデバッグすることができます。 (そして、 'action =" <?php mail()?> "'はあなたが期待しているようなものを遠隔操作しません。 – David