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>
email.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。
答案 0 :(得分:0)
您忘记为提交字段命名:
<input id="mySubmit" type="submit" value="Submit" name="submit">
^^^^^^^^^^^^^
请勿使用表单字段来检测帖子。使用100%可靠:
if ($_SERVER['REQUEST_METHOD'] == 'POST') { ... }
代替。如果执行POST,这将始终为真。正如您在版本中看到的那样,简单的拼写错误或疏忽将完全扼杀您的逻辑。
答案 1 :(得分:0)
首先清空您的文件,然后将header("Location: thanks.html");
放入您的php标记中。如果它工作,然后逐步添加其他行。你会看到烦人的路线。阅读PHP参考网站上的标题。应该小心使用