Jquery验证无效的PHP联系人表单

Jquery验证无效的PHP联系人表单,php,jquery,contact-form,Php,Jquery,Contact Form,问题是,无论我尝试了什么都没用。尝试了我自己的脚本,尝试了一切,然后在谷歌上找到了一些,并尝试了它们,但不知道遗漏了什么,但它不起作用。 到目前为止最接近的一次,我收到了空邮件。这是最新版本。谁能告诉我少了什么 HTML JS验证 <script type="text/javascript"> $(document).ready(function(){ $('#send_message').on('submit',function(e){

问题是,无论我尝试了什么都没用。尝试了我自己的脚本,尝试了一切,然后在谷歌上找到了一些,并尝试了它们,但不知道遗漏了什么,但它不起作用。 到目前为止最接近的一次,我收到了空邮件。这是最新版本。谁能告诉我少了什么

HTML

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.com/sendEmail.php中的message

看看第61行:

$message .= "Gönd.: " . $name . "<br />";
其余类似的行可以附加到它

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

$('#send_message').on('submit',function(e){
发送消息是一个按钮,而不是表单。它没有提交事件。请改为将以下内容附加到表单:

$('#contact_form').on('submit',function(e){
您试图在第61行追加$message变量,而不首先初始化它。通过移除附加符号来固定第61行


注意:未定义变量:第61行/Users/kobigo/Sites/yedikitamuhendislik.com/sendmail.php中的message’这是我现在注意到的最后一个错误@Jayblanchard你有没有研究过为什么变量是未定义的?把你的代码缩小到问题所在。当有多个问题时,问多个问题Hanks David,这很有帮助。错过了那个点。但是现在它将我发送到另一个页面,在那里它给出了错误,我希望它首先运行Jquery验证,然后发布。。有什么想法吗?@vincodisouza:Define给出了错误。请理解,我从这里看不到您的屏幕。堆栈溢出是调试器的一个很差的替代品,您能否指定代码行为偏离预期的确切位置?错误消息,如无效电子邮件等。。我希望它显示在同一页上,但它会将我重定向到另一页。。我认为jquery验证不起作用。如何在php发布之前运行查询验证?@vincodisouza:我已经更新了答案。您在JavaScript代码中附加了错误的事件。这将是一个很好的机会来查看浏览器的调试工具,以帮助您逐步完成代码并查看运行时值。在编写代码时,调试是一个非常宝贵的过程。感谢您的更正。我在按钮点击表单提交之间切换。。忘了。。谢谢现在我看到了验证错误消息,但是表单没有反应。没有错误或成功消息,也没有发送邮件。有什么想法吗?
$('#send_message').on('submit',function(e){
$('#contact_form').on('submit',function(e){
 $message = "Gönd.: " . $name . "<br />";
 $message = "";