如何使javascript联系人表单正确提交

How to make javascript contact form submit correctly

本文关键字:提交 表单 联系人 何使 javascript      更新时间:2024-03-09

html代码:联系我

                <label for="Name">Name:</label>
                <input type="text" name="name" id="Name" accesskey="N" tabindex="1">
                <label for="Email">E-mail:</label>
                <input type="text" name="email" id="Email" accesskey="E" tabindex="1">
                <label for="Phone">Phone Number:</label>
                <input type="text" name="number" id="Number" tabindex="1">
                <label for="Comment">Comments</label>
                <textarea type="text" name="comment" id="Comment" rows="27" cols="70" tabindex="1"></textarea>
                <input id="mySubmit" type="submit" value="Submit">
            </form>
    </fieldset>
</div>

电子邮件.php

<?php
if (isset($_POST['submit'])) {
  $email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
  if (!$email)
    echo "<script type='text/javascript'>alert('Please enter a valid email address...');history.back();</script>";
  else {
    $to = "randomemail@gmail.com"; //change this to YOUR email address
    $name = (isset($_POST['name'])) ? $_POST['name'] : "anonymous";
    $number = (isset($_POST['number'])) ? $_POST['number'] : "none";
    $comment = (isset($_POST['comment'])) ? $_POST['comment'] : "none";
    $subject = "Message from $name via contact form";
    $message = "Name: $name'nNumber: $number'nEmail: $email'nMessage: $comment";
    $from = "From: " . $name . "<" . $email .">'r'n" .
            "Reply-To: " . $email ."'r'n" .
            "X-Mailer: PHP/" . phpversion();
    if (mail($to, $subject, $message, $from))
      header("Location: thanks.html");
    else
      echo "<script type='text/javascript'>alert('An unknown system error has occurred!');history.back();</script>";
  }
}
?>

当你提交时,它会加载email.php,但只有一个白色页面,而不是它应该加载的thanks.html。

您忘记命名提交字段:

            <input id="mySubmit" type="submit" value="Submit" name="submit">
                                                              ^^^^^^^^^^^^^

不要使用表单字段来检测帖子。使用100%可靠:

if ($_SERVER['REQUEST_METHOD'] == 'POST') { ... }

相反。如果执行了POST,则始终如此。正如你在你的版本中看到的那样,一个简单的打字错误或疏忽就会完全扼杀你的逻辑。

首先清空文件并将header("Location: thanks.html");放入php标记中。如果有效,则逐步添加其他行。你会看到令人讨厌的线条。阅读PHP参考网站上的标题。应小心使用