[英]Email sending in php using jquery
我必須使用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>
好的,首先,您應該停止提交表單,因為您正在使用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。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.