请原谅我,因为这可能有一个非常简单的解决方案,我只是非常缺乏经验。
我正在使用Massive HTML5主题,无法让我的联系表单生效。我以为我遵循了指示,但是当我点击提交时仍然没有任何反应。
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<form method="post" action="contact-us.php" id="form" role="form" class="contact-comments">
<div class="row">
<div class="col-md-6 ">
<div class="form-group">
<!-- Name -->
<input type="text" name="name" id="name" class=" form-control" placeholder="Name *" maxlength="100" required="">
</div>
<div class="form-group">
<!-- Email -->
<input type="email" name="email" id="email" class=" form-control" placeholder="Email *" maxlength="100" required="">
</div>
<div class="form-group">
<!-- phone -->
<input type="text" name="phone" id="phone" class=" form-control" placeholder="Phone" maxlength="100">
</div>
</div>
<div class="col-md-6 form-group">
<div class="form-group">
<!-- Comment -->
<textarea name="text" id="text" class="cmnt-text form-control" placeholder="Comment" maxlength="400"></textarea>
</div>
<div class="form-group full-width">
<button type="submit" class="btn btn-small btn-dark-solid ">
Send Message
</button>
</div>
</div>
</div>
</form>
&#13;
<?php
// Note: filter_var() requires PHP >= 5.2.0
if ( isset($_POST['name']) && isset($_POST['email']) && isset($_POST['subject']) && isset($_POST['comments']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) ) {
// detect & prevent header injections
$mailTest = "/(content-type|bcc:|cc:|to:)/i";
foreach ( $_POST as $key => $val ) {
if ( preg_match( $mailTest, $val ) ) {
exit;
}
}
$headers = 'From: ' . $_POST["name"] . '<' . $_POST["email"] . '>' . "\r\n" .
'Reply-To: ' . $_POST["email"] . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$success = mail( "myemail@mail.com", $_POST['subject'], $_POST['comments'], $headers );
// Replace with your email
if ($success) {
?>
<div style="color:#3c763d;padding:30px;text-align:center">
<strong>Success!</strong> Message has been sent successfully.
</div>
<?php
}
}
当然,我将myemail@mail.com更改为我的地址。
感谢您的帮助。
答案 0 :(得分:0)
mail()函数如果邮件成功接受传递,则返回TRUE,否则返回FALSE。
重要的是要注意,仅仅因为邮件被接受传递,并不意味着邮件实际上将到达预定目的地。
请参阅Documentation。
你还可以通过其他php库发送phpmailer等邮件。
答案 1 :(得分:0)
if ( isset($_POST['name']) && isset($_POST['email']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
删除&amp;&amp; isset($ _ POST ['subject'])&amp;&amp;来自if条件的isset($ _ POST ['comments'])因为它们没有HTML主题表单中的主题和注释的输入。
答案 2 :(得分:0)
如果您使用的是Windows,请使用XAMPP,如果在Mac上使用MAMP。
如果没有任何服务器端连接,则PHP联系表单将无效。我遇到了和你现在类似的问题。有关详细信息,请查看我的帖子Configuration issue with PHP contact form。