我想在我的网站上使用此联系表格。但是当我点击发送时它出错了。我真的不知道如何解决它,但凭借我的litlle知识,它的jquery问题可以通过,所以它有错误。对我来说解决它非常重要。这个代码你需要。谢谢你帮助我,抱歉我的英语不好
php代码:
//Retrieve form data.
//GET - user submitted data using AJAX
//POST - in case user does not support javascript, we'll use POST instead
$name = ($_GET['name']) ? $_GET['name'] : $_POST['name'];
$email = ($_GET['email']) ?$_GET['email'] : $_POST['email'];
$message = ($_GET['message']) ?$_GET['message'] : $_POST['message'];
//flag to indicate which method it uses. If POST set it to 1
if ($_POST) $post=1;
//Simple server side validation for POST data, of course, you should validate the email
if (!$name) $errors[count($errors)] = 'Please enter your name.';
if (!$email) $errors[count($errors)] = 'Please enter your email.';
if (!$message) $errors[count($errors)] = 'Please enter your message.';
//If the errors array is empty, send the mail
if (!$errors) {
// ====== Your mail here ====== //
$to = 'alireza.b1993@gmail.com';
// Sender
$from = $name . ' <' . $email . '>';
//subject and the html message
$subject = 'Message from your website';
$message = '
<!DOCTYPE html>
<html>
<head></head>
<body>
<table>
<tr><td>Name:</td><td>' . $name . '</td></tr>
<tr><td>Email:</td><td>' . $email . '</td></tr>
<tr><td>Message:</td><td>' . nl2br($message) . '</td></tr>
</table>
</body>
</html>';
// Send the mail
$result = sendmail($to, $subject, $message, $from);
//if POST was used, display the message straight away
if ($_POST) {
if ($result) echo 'Thank you! We have received your message.';
else echo 'Sorry, unexpected error. Please try again later';
//else if GET was used, return the boolean value so that
//ajax script can react accordingly
//1 means success, 0 means failed
} else {
echo $result;
}
// If the errors array has values
} else {}
// Simple mail function with HTML header
function sendmail($to, $subject, $message, $from) {
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=utf-8" . "\r\n";
$headers .= 'From: ' . $from . "\r\n";
$result = mail($to,$subject,$message,$headers);
if ($result) return 1;
else return 0;
}
?>
html代码:
<div id="contact-form">
<form method="post" action="contact.php" style="direction:rtl">
<div class="field">
<label>name:</label>
<input type="text" name="name" class="text" />
</div>
<div class="field">
<label>email :<span>*</span></label>
<input type="text" name="email" class="text" />
</div>
<div class="field">
<label>message :<span>*</span></label>
<textarea name="message" class="text textarea" ></textarea>
</div>
<div class="field">
<input type="button" id="send" value="ارسال"/>
<div class="loading"></div>
</div>
</form>
</div>
这是js代码:
(function() {
var animateSpeed=300;
var emailReg = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
// Validating
function validateName(name) {
if (name.val()=='*') {name.addClass('validation-error',animateSpeed); return false;}
else {name.removeClass('validation-error',animateSpeed); return true;}
}
function validateEmail(email,regex) {
if (!regex.test(email.val())) {email.addClass('validation-error',animateSpeed); return false;}
else {email.removeClass('validation-error',animateSpeed); return true;}
}
function validateMessage(message) {
if (message.val()=='') {message.addClass('validation-error',animateSpeed); return false;}
else {message.removeClass('validation-error',animateSpeed); return true;}
}
$('#send').click(function() {
var result=true;
var name = $('input[name=name]');
var email = $('input[name=email]');
var message = $('textarea[name=message]');
// Validate
if(!validateName(name)) result=false;
if(!validateEmail(email,emailReg)) result=false;
if(!validateMessage(message)) result=false;
if(result==false) return false;
// Data
var data = 'name=' + name.val() + '&email=' + email.val() + '&message=' + encodeURIComponent(message.val());
// Disable fields
$('.text').attr('disabled','true');
// Loading icon
$('.loading').show();
// Start jQuery
$.ajax({
// PHP file that processes the data and send mail
url: "contact.php",
// GET method is used
type: "POST",
// Pass the data
data: data,
//Do not cache the page
cache: false,
// Success
success: function (html) {
if (html==1) {
// Loading icon
$('.loading').fadeOut('slow');
//show the success message
$('.success-message').slideDown('slow');
// Disable send button
$('#send').attr('disabled',true);
}
else {
$('.loading').fadeOut('slow')
alert('Sorry, unexpected error. Please try again later.');
}
}
});
return false;
});
$('input[name=name]').blur(function(){validateName($(this));});
$('input[name=email]').blur(function(){validateEmail($(this),emailReg); });
$('textarea[name=message]').blur(function(){validateMessage($(this)); });
})();
如果你想要完整的html页面这是下载链接 Download Here
答案 0 :(得分:1)
错误发生在您的contact.php代码中。您检查$ errors是否包含数据,但如果没有错误,则表示您的数组不存在。
要检查,必须在以下情况之前将数组声明为空:
$errors = array();