【发布时间】:2016-10-08 03:32:39
【问题描述】:
如前所述,我的 php 联系表单会向我发送一封空白电子邮件,但是它不会验证空输入值。有什么建议么?我已经尝试了所有我知道要做的事情。
我还想知道是否有一种方法可以在提交时重定向到thankyou.html 页面。我记得 php 类似于“header ...”来重定向。
if (isset($_POST["submit"])) {
$name = $_POST['name'];
$email = $_POST['email'];
$from = 'Demo Contact Form';
$to = 'email@example.com';
$subject = 'Message from Contact Demo ';
$body = "From: $name\n E-Mail: $email";
// Check if name has been entered
if (!$_POST['name']) = 0; {
$errName = 'Please enter your name';
}
// Check if email has been entered and is valid
if (!$_POST['email'] || !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL)) {
$errEmail = 'Please enter a valid email address';
}
// If there are no errors, send the email
if (!$errName && !$errEmail) {
if (mail ($to, $subject, $body, $from)) {
$result='<div class="alert alert-success">Thank You! I will be in touch</div>';
} else {
$result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later</div>';
}
}
}
?>
HTML...
<!--FORM-->
<form role="form" action="contact.php" method="post" class="form-horizontal align-center">
<div class="form-group col-centered">
<label class="control-label col-sm-4 text-align-center">NAME</label>
<div class="control col-sm-4">
<input type="text" id="name" name="name" class="form-control">
<?php echo "<p class='text-danger'>$errName</p>";?>
</div>
</div>
<div class="form-group col-centered">
<label class="control-label col-sm-4 text-align-center">EMAIL</label>
<div class="control col-sm-4">
<input type="text" id="email" name="name" class="form-control">
<?php echo "<p class='text-danger'>$errEmail</p>";?>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-4 text-align-center">PHONE</label>
<div class="col-sm-4">
<input type="text" name="phone" class="form-control">
</div>
</div>
<div class="control-group">
<div class="controls">
<button type="submit" name="submit" value="submit" class="btnSize btn btn-default btn-lg"><strong>SAVE $150</strong></button>
</div>
</div>
</form>
感谢您的宝贵时间。
【问题讨论】:
-
if (!$_POST['name']) = 0; {一方面,失败有两个原因。另外,邮件的“发件人”需要一个电子邮件地址。 -
我早先这样做了,但出于某种原因删除了它!我会再试一次。
-
您的代码包含太多错误。看看这个formget.com/php-contact-form 看起来不错的代码。或code.tutsplus.com/tutorials/…
-
@Fred-ii- 我是 php 和联系表单的新手,令人失望的是它有错误。我会通读这些教程。谢谢。
-
@Fred-ii- 第一个链接实际上有一个错误,电子邮件正则表达式只匹配
w@w.w或w-(+)@w-(+).w-(+)他们在他们的字符类中得到了[\w-]+斜杠。/([w-]+@[w-]+.[w-]+)/或者它在页面上呈现错误,只是说。 :-D
标签: php forms validation contact-form