我有一个已启动并正在运行的模板网站,唯一的问题是,我不了解php,因此无法获取联系表格。它的功能在于JS可以正常工作,并且在提交后会显示已发送的消息,并且验证似乎还不错,只是发送时我没有收到邮件。
php文件只有一个指令,用所需的电子邮件替换了$to
中的test@mail.com,我明显改变了我的电子邮件-php文件的底部有一个差异,也有一条消息说“用电子邮件代替”,但是我认为这是一个错误,因为存在$to
变量,但是就像我说的那样,我不知道php。
我要粘贴在下面,请记住我将我的电子邮件地址改回test@mail.com-这样就不会出现问题了。
由于负责创建此模板的团队没有回复我的电子邮件,对解决此问题的任何帮助将不胜感激。
html:
<section id="contact-section" class="ptb ptb-sm-80">
<div class="container">
<div class="row">
<div class="col-md-8 offset-md-2 text-center">
</div>
</div>
<div class="spacer-75"></div>
<div class="row">
<div class="col-md-6 offset-md-3">
<!-- Contact FORM -->
<form class="contact-form" id="contact">
<!-- IF MAIL SENT SUCCESSFULLY -->
<h6 class="successContent">
<i class="fa fa-check left" style="color: #5cb45d;"></i>Your message has been sent successfully.
</h6>
<!-- END IF MAIL SENT SUCCESSFULLY -->
<!-- MAIL SENDING UNSUCCESSFULL -->
<h6 class="errorContent">
<i class="fa fa-exclamation-circle left" style="color: #e1534f;"></i>There was a problem validating the form please check!
</h6>
<!-- END MAIL SENDING UNSUCCESSFULL -->
<div class="form-field-wrapper">
<input class="input-sm form-full" id="form-name" type="text" name="form-name" placeholder="Your Name" required>
</div>
<div class="form-field-wrapper">
<input class="input-sm form-full" id="form-number" type="text" name="form-number" placeholder="Phone number" required>
</div>
<div class="form-field-wrapper">
<input class="input-sm form-full" id="form-email" type="email" name="form-email" placeholder="Email" required>
</div>
<div class="form-field-wrapper">
<input class="input-sm form-full" id="form-subject" type="text" name="form-subject" placeholder="Subject">
</div>
<div class="form-field-wrapper">
<textarea class="form-full" id="form-message" rows="7" name="form-message" placeholder="Your Message" required></textarea>
</div>
<button class="btn btn-md btn-black form-full" type="submit" id="form-submit" name="submit">Send Message</button>
</form>
<!-- END Contact FORM -->
</div>
</div>
</div>
</section>
<!-- Contact Section -->
jquery:
(function ($) {
"use strict";
$("#contact").validate();
/* =================================
=== CONTACT FORM ====
=================================== */
$("#contact").submit(function (e) {
e.preventDefault();
var name = $("#form-name").val();
var number = $("#form-number").val();
var email = $("#form-email").val();
var subject = $("#form-subject").val();
var message = $("#form-message").val();
var dataString = 'name=' + name + '&email=' + number + '&number=' + email + '&subject=' + subject + '&message=' + message;
function validEmail(emailAddress) {
var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
return pattern.test(emailAddress);
};
if (validEmail(email) && (message.length > 1) && (name.length > 1)) {
$.ajax({
type: "POST",
url: "../send-mail.php",
data: dataString,
success: function () {
$('.successContent').fadeIn(1000);
$('.errorContent').fadeOut(500);
}
});
}
else {
$('.errorContent').fadeIn(1000);
$('.successContent').fadeOut(500);
}
return false;
});
})(jQuery);
php:
<?php
$to = 'test@mail.com'; // Change your email address
$name = $_POST['name'];
$subject = $_POST['subject'];
$email = $_POST['email'];
$message = $_POST['message'];
// Email Submit
// Note: filter_var() requires PHP >= 5.2.0
if ( isset($email) && isset($name) && isset($subject) && isset($message) && filter_var($email, FILTER_VALIDATE_EMAIL) ) {
// detect & prevent header injections
$test = "/(content-type|bcc:|cc:|to:)/i";
foreach ( $_POST as $key => $val ) {
if ( preg_match( $test, $val ) ) {
exit;
}
}
$body = <<<EMAIL
subject : $subject
My name is, $name.
$message
From : $name
Email : $email
EMAIL;
$header = 'From: ' . $_POST["name"] . '<' . $_POST["email"] . '>' . "\r\n" .
'Reply-To: ' . $_POST["email"] . "\r\n" .
'X-Mailer: PHP/' . phpversion();
//
// mail( $to , $_POST['subject'], $_POST['message'], $headers );
mail($to, $subject, $body, $header);
// ^
// Replace with your email
}
?>