我必须使用jquery在php中发送电子邮件,但问题是当我单击提交按钮并且验证码正确时,它在警报框中显示消息(“无效邮件”),并且您的查询已收到,我们将请尽快与您联系。”;我真的不知道如何同时执行这两个操作。如果验证码不正确,则显示无效的邮件和无效的验证码。任何人都可以帮助我解决此问题。 >
Email.php
<?php
session_start();
$email = '';
$json = array();
if (isset($_POST['Name']))
$name = $_POST['Name'];
if (isset($_POST['Email']))
$email = $_POST['Email'];
if (isset($_POST['Message']))
$message = $_POST['Message'];
$subject = 'Enquiry';
// $email = filter_var($email, FILTER_SANITIZE_EMAIL);
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
//echo filter_var($email, FILTER_VALIDATE_EMAIL);exit;
if ($_SESSION['add'] == $_POST['captcha']) {
$subject = $subject;
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From:' . $email . "\r\n"; // Sender's Email
$headers .= 'Cc:' . $email . "\r\n"; // Carbon copy to Sender
$template = '<div style="padding:50px; color:white;">Hello ' . $name . ',<br/>'
. '<br/>Thank you...! For Contacting Us.<br/><br/>'
. 'Name:' . $name . '<br/>'
. 'Email:' . $email . '<br/>'
. 'Message:' . $message . '<br/><br/>'
. 'This is a Contact Confirmation mail.'
. '<br/>'
. 'We Will contact You as soon as possible .</div>';
$sendmessage = "<div style=\"background-color:#7E7E7E; color:white;\">" . $template . "</div>";
$sendmessage = wordwrap($sendmessage, 70);
//mail(Configure::read('__general_enquiries'), $subject, $sendmessage, $headers);
mail('balaji@ramsol.in', $message, $sendmessage, $headers);
$json['success'] = "Your Query has been received, We will contact you soon.";
} else {
//$this->Session->setFlash(_('Invalid Captcha'));
$json['error'] = "Invalid CAPTCHA";
}
} else {
$json['error'] = "Invalid Email";
}
echo json_encode($json);
exit;
//header('location:index.php');
?>
脚本代码:
<script type="text/javascript">
$(document).ready(function () {
$('#submit').click(function () {
var name = $("#name").val();
var email = $("#email").val();
var message = $("#message").val();
var captcha = $("#captcha").val();
$("#returnmessage").empty();
if (name == '' || email == '' || message == '' || captcha == '') {
alert("Please Fill Required Fields");
}
else {
$.ajax({
type: 'post',
url: 'email.php',
dataType: "json",
data: {'name': name, 'email': email, 'message': message, 'captcha': captcha},
success: function (data) {
if (data.success) {
alert(data.success);
$("#contact-form")[0].reset();
} else {
alert(data.error);
}
}
//window.location.href = "index.php";
});
}
});
会话代码:
<?php
//if(isset($_SESSION)){
session_start();
$rand = rand(1,9);
$rand1 = rand(1,9);
$rand =$_SESSION['rand'] = $rand;
$rand1 =$_SESSION['rand1'] = $rand1;
$_SESSION['add'] = $rand + $rand1;
?>
html代码:
<form id="contact-form" method="post" action="email.php">
<div class="form-group-inner">
<div class="form-group">
<input type="text" name="Name" id="name" class="form-control" placeholder="Name" />
</div>
<div class="form-group">
<input type="email" name="Email" id="email" class="form-control" placeholder="Email" />
</div>
</div>
<div class="form-group">
<textarea class="form-control" name="Message" id="message" placeholder="Message"></textarea>
</div>
<div class="form-group-inner">
<div class="form-group">
<h5 align="right" style="color: white;"><?php echo $_SESSION['rand']; ?> + <?php echo $_SESSION['rand1'];?></h5>
</div>
<div class="form-group">
<input type="text" name="captcha" id = "captcha" class="form-control" placeholder="Type Here" />
</div>
</div>
<div class="form-action">
<button type="submit" class="button-btn" name="submit" id="submit">Send</button>
</div>
</form>
答案 0 :(得分:0)
好的,首先,您应该停止提交表单,因为您正在使用ajax:
您应该更改:
$('#submit').click(function () {
到
$('#submit').click(function (e) {
e.preventDefault();
第二,您发送数据:{'name': name, 'email': email, 'message': message, 'captcha': captcha},
用小写字母,但是在您的php代码中,您用第一个字符的大写字母进行检查:
if (isset($_POST['Name']))
$name = $_POST['Name'];
if (isset($_POST['Email']))
$email = $_POST['Email'];
if (isset($_POST['Message']))
$message = $_POST['Message'];
最终代码:
JS:
<script type="text/javascript">
$(document).ready(function () {
$('#submit').click(function (e) {
e.preventDefault();
var name = $("#name").val();
var email = $("#email").val();
var message = $("#message").val();
var captcha = $("#captcha").val();
$("#returnmessage").empty();
if (name == '' || email == '' || message == '' || captcha == '') {
alert("Please Fill Required Fields");
}
else {
$.ajax({
type: 'post',
url: 'email.php',
dataType: "json",
data: {'name': name, 'email': email, 'message': message, 'captcha': captcha},
success: function (data) {
if (data.success) {
alert(data.success);
$("#contact-form")[0].reset();
} else {
alert(data.error);
}
}
//window.location.href = "index.php";
});
}
});
PHP:
<?php
session_start();
$email = '';
$json = array();
if (isset($_POST['name']))
$name = $_POST['name'];
if (isset($_POST['email']))
$email = $_POST['email'];
if (isset($_POST['message']))
$message = $_POST['message'];
$subject = 'Enquiry';
// $email = filter_var($email, FILTER_SANITIZE_EMAIL);
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
//echo filter_var($email, FILTER_VALIDATE_EMAIL);exit;
if ($_SESSION['add'] == $_POST['captcha']) {
$subject = $subject;
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From:' . $email . "\r\n"; // Sender's Email
$headers .= 'Cc:' . $email . "\r\n"; // Carbon copy to Sender
$template = '<div style="padding:50px; color:white;">Hello ' . $name . ',<br/>'
. '<br/>Thank you...! For Contacting Us.<br/><br/>'
. 'Name:' . $name . '<br/>'
. 'Email:' . $email . '<br/>'
. 'Message:' . $message . '<br/><br/>'
. 'This is a Contact Confirmation mail.'
. '<br/>'
. 'We Will contact You as soon as possible .</div>';
$sendmessage = "<div style=\"background-color:#7E7E7E; color:white;\">" . $template . "</div>";
$sendmessage = wordwrap($sendmessage, 70);
//mail(Configure::read('__general_enquiries'), $subject, $sendmessage, $headers);
mail('balaji@ramsol.in', $message, $sendmessage, $headers);
$json['success'] = "Your Query has been received, We will contact you soon.";
} else {
//$this->Session->setFlash(_('Invalid Captcha'));
$json['error'] = "Invalid CAPTCHA";
}
} else {
$json['error'] = "Invalid Email";
}
echo json_encode($json);
exit;
//header('location:index.php');
?>
代码问题出在那,是您将表单直接发布到PHP。