带有Jquery验证的PHP联系人表单不起作用


PHP contact form with Jquery validation not working

问题是,无论我尝试了什么都不起作用。尝试了我自己的脚本,尝试了所有的东西,然后在谷歌上找到了一些并尝试了它们,但不,不知道缺少了什么,但它不起作用。最近的一次,我收到了空邮件。这是最新版本。有人能告诉我少了什么吗?

HTML

<div class="container-fluid">
                        <p id="returnmessage"></p>
                        <form action="sendEmail.php" id="contact_form" method="post">
                            <h2 style="font-size:14px;line-height:18px;font-weight:600;padding-bottom:0;">Bize Yazın</h2>
                            <ul class="contactform">
                                <li>
                                    <div id="name_error" class="error" style="color:#aa3939; font-size:8px; line-height:8px;"> <i class="fa fa-exclamation"></i> Lütfen adınızı giriniz.</div>
                                    <span class="contact-input-icon" style="text-align:left"><i class="fa fa-user"></i></span>
                                    <div class="input-field">
                                        <input type="text" style="border:1px solid rgba(220,220,220,0.5)" name="contactName" id="contactName" value="" class="required requiredField" placeholder="Ad Soyad"/>
                                    </div>
                                </li>
                                <li>
                                    <div id="email_error" class="error" style="color:#aa3939; font-size:8px; line-height:8px;"> <i class="fa fa-exclamation"></i> Lütfen eposta adresinizi giriniz.</div>
                                    <span class="contact-input-icon"><i class="fa fa-envelope"></i></span>
                                    <div class="input-field">
                                        <input type="email" style="border:1px solid rgba(220,220,220,0.5)" name="contactEmail" id="contactEmail" value="" class="required requiredField email" placeholder="Eposta"/>
                                    </div>
                                </li>
                                <li>
                                        <input type="text" style="border:1px solid rgba(220,220,220,0.5)" name="contactSubject" id="contactSubject" value="" class="hidden" placeholder=""/>
                                </li>
                                <li class="textarea">
                                    <div id="message_error" class="error" style="color:#aa3939; font-size:8px; line-height:8px;"> <i class="fa fa-exclamation"></i> Lütfen mesajınızı giriniz.</div>
                                    <span class="contact-input-icon"><i class="fa fa-pencil"></i></span>
                                    <div class="input-field">
                                        <textarea name="contactMessage" style="border:1px solid rgba(220,220,220,0.5)" id="contactMessage" rows="6" cols="20" class="required requiredField" placeholder="Mesajınız"></textarea>
                                    </div>
                                    <div id="mail_success" class="success" style="color:#00CC00"><i class="fa fa-check"></i> İlginiz için teşekkürler. En kısa sürede sizinle irtibata geçeceğiz.</div>
                                    <div id="mail_fail" class="error" style="color:#aa3939"><i class="fa fa-times"></i> Üzgünüz, mesajınız iletilemedi. Daha sonra lütfen tekrar deneyin.</div>
                                </li>
                                <li class="buttons">
                                    <div id="cf_submit_p">
                                    <input type="hidden" style="border:1px solid rgba(220,220,220,0.5)" name="submitted" id="submitted" value="true" />
                                    <button type="submit" style="border:1px solid #3f97cf" class="button" id="send_message"><i class="fa fa-paper-plane-o" style="font-size:20px;color:#3f97cf"></i></button>
                                    </div>
                                </li>
                            </ul>
                        </form>
                    </div> <!--end container-fluid-->
                </div><!-- #contact-canvas -->

JS验证

<script type="text/javascript">
    $(document).ready(function(){
        $('#send_message').on('submit',function(e){
            e.preventDefault();
            var error = false;
            var name = $('#contactName').val();
            var email = $('#contactEmail').val();
            var subject = $('#contactSubject').val();
            var message = $('#contactMessage').val();
            if(name.length == 0){
                var error = true;
                $('#name_error').fadeIn(500);
            } else {
                $('#name_error').fadeOut(500);
            }
            if(email.length == 0 || email.indexOf('@') == '-1'){
                error = true;
                $('#email_error').fadeIn(500);
            } else {
                $('#email_error').fadeOut(500);
            }
            if(message.length == 0){
                error = true;
                $('#message_error').fadeIn(500);
            } else {
                $('#message_error').fadeOut(500);
            } if(error == false){
                $('#cf_submit_p').attr({'disabled' : 'true', 'value' : 'Gönderiliyor...' });
                $.post("send_email.php", $("#contact_form").serialize(),function(result){
                    if(result == 'sent'){
                        $('#cf_submit_p').remove();
                        $('#mail_success').fadeIn(500);
                    } else {
                        $('#mail_fail').fadeIn(500);
                        $('#cf_submit_p').removeAttr('disabled').attr('value', 'Gönder');
                    }
                });
            }
            return false;
        });
    });
</script>

和PHP

<?php

//Değiştir. Site admini eposta adresi. 
$akaEmail = 'kreaft@outlook.com';


if($_POST) {

   $name = trim(stripslashes($_POST['contactName']));
   $email = trim(stripslashes($_POST['contactEmail']));
   $subject = trim(stripslashes($_POST['contactSubject']));
   $contact_message = trim(stripslashes($_POST['contactMessage']));

   // İsim doğrulama
    if (strlen($name) < 2) {
        $error['name'] = "Lütfen adınızı girin.";
    }
    // Email doğrulama
    if (!preg_match('/^[a-z0-9&'''.'-_'+]+@[a-z0-9'-]+'.([a-z0-9'-]+'.)*+[a-z]{2}/is', $email)) {
        $error['email'] = "Lütfen geçerli bir eposta adresi girin.";
    }
    // Mesaj doğrulama
    if (strlen($contact_message) < 15) {
        $error['message'] = "Lütfen mesajınızı girin. (Min. 15 karakter)";
    }
   // Konu
    if ($subject == '') { $subject = "Site İletişim Formu"; }


   // Mesajı oluşturuyoruz
   $message .= "Gönd.: " . $name . "<br />";
   $message .= "Eposta: " . $email . "<br />";
   $message .= "Mesaj: <br />";
   $message .= $contact_message;
   $message .= "<br /> ----- <br /> Bu eposta site iletişim formu üzerinden gönderilmiştir. <br />";

   // Başlıkları oluşturuyoruz
   $from =  $name . " <" . $email . ">";

   // Başlıklar
    $headers = "From: " . $from . "'r'n";
    $headers .= "Reply-To: ". $email . "'r'n";
    $headers .= "MIME-Version: 1.0'r'n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1'r'n";


   if (!$error) {

      ini_set("sendmail_from", $akaEmail); // windows server için
      $mail = mail($akaEmail, $subject, $message, $headers);

        if ($mail) { echo "OK"; }
      else { echo "Bir hata oluştu. Lütfen tekrar deneyin."; }

    } # hiç bir doğrulama hatası çıkmazsa bitir, çıkarsa hataları listeliyoruz.

    else {

        $response = (isset($error['name'])) ? $error['name'] . "<br /> 'n" : null;
        $response .= (isset($error['email'])) ? $error['email'] . "<br /> 'n" : null;
        $response .= (isset($error['message'])) ? $error['message'] . "<br />" : null;

        echo $response;

    } # bir doğrulama hatası olmuşsa burada bitir.

}

?>

注意:未定义的变量:第61行/Users/kobigo/Sites/yedikitamuhendislik/sendEmail.php中的消息

看看第61行:

$message .= "Gönd.: " . $name . "<br />";

您正试图附加到$message,但您从未在一开始就定义过它。您可以在定义后将其附加到,但在第一行中,您需要简单地定义它并分配给它:

$message = "Gönd.: " . $name . "<br />";

剩下的类似行可以附加到它上。


您还在JavaScript代码中附加了错误的事件:

$('#send_message').on('submit',function(e){

#send_message是一个按钮,而不是窗体。它没有submit事件。改为附加到表单:

$('#contact_form').on('submit',function(e){

您试图附加到第61行的$message变量,而不首先初始化它。通过删除附加符号. 修复第61行

 $message = "Gönd.: " . $name . "<br />";

或者先初始化变量,如:

 $message = "";