2015-06-29 2 views
-6

Проблема в том, что бы я ни пытался, не работал. Пробовал собственный скрипт, все пробовал, потом нашел в Google и пробовал, но нет, не знаю, чего не хватает, но это не работает. Ближе всего до сих пор у меня были пустые электронные письма. Это последняя версия. Может ли кто-нибудь сказать мне, что пропало?Форма контакта с PHP с проверкой JQuery не работает

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 = '[email protected]'; 





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&\'\.\-_\+][email protected][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. 



} 



?> 
+2

Что вы имеете в виду под «не работает»? –

+0

'Примечание: неопределенная переменная: сообщение в /Users/kobigo/Sites/yedikitamuhendislik.com/sendEmail.php в строке 61' это последняя ошибка, которую я заметил прямо сейчас. @JayBlanchard – vincodisouza

+0

Вы изучили, почему переменная не определена? –

ответ

1

Примечание: Undefined переменной: сообщение в /Users/kobigo/Sites/yedikitamuhendislik.com/ sendEmail.php в строке 61

Посмотрите на то, что, как представляется, строка 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){ 
+0

Спасибо, Дэвид, это было полезно. Пропустил эту точку. Но теперь он отправляет меня на другую страницу, где он дает ошибки, я хочу сначала запустить проверку Jquery, а затем отправить .. Любая идея? – vincodisouza

+1

@vincodisouza: Определить «дает ошибки». Поймите, что я не вижу ваш экран отсюда. Stack Overflow является плохой заменой отладчика, можете ли вы указать, где именно поведение кода отклоняется от ожидаемого? – David

+0

сообщения об ошибках, такие как «недействительный адрес электронной почты» и т. Д. Я хотел, чтобы он отображался на одной странице, и он перенаправляет меня на другую страницу. Я думаю, что проверки jquery не работают.Как я могу запускать проверки запроса до публикации php? – vincodisouza

0

Вы пытаетесь добавить к $message переменной в строке 61 без инициализации первым. Фикс строка 61 путем удаления присоединять Подписать .

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

или инициализирует переменную первого типа:

$message = ""; 
+0

Спасибо, сделал это. – vincodisouza

Смежные вопросы