簡體   English   中英

使用jQuery在PHP中發送電子郵件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM