2016-07-28 186 views
0

我有我的主頁在測試服務器上。當我提交表單時,頁面顯示一個空白頁面,但它也發送電子郵件。表格發送電子郵件,但顯示空白頁面

第二個問題是,該複選框值不會在電子郵件中表示,我不認爲他們有PHP文件閱讀...

我的按鈕有正確的類型(提交),我在名稱中沒有任何拼寫錯誤...而且我不是那麼喜歡php,所以我真的不知道,什麼是錯的。任何幫助,將不勝感激。

HTML碼

<form action="contact.php" id="form" method="post" name="send"> 
<span class="input input--kuro"> 


<div class="row"> 
<h3 class="big-blue">Kontaktformular</h3> 
<h2 class="small-grey">Bitte füllen Sie das Formular aus, damit wir Ihnen ein individuelles Angebot zukommen lassen können.</h2> 
</div> 
<div class="row"> 
<div class="row"> 
<div class="input-wrapper col-md-4 col-centered"> 
<input class="requiredField name subscribe-requiredField input__field input__field--kuro" type="text" name="name" placeholder="Name" id="name"> 
<label class="input__label input__label--kuro" for="subscribe-email"> 
<span class="mail input__label-content input__label-content--kuro">Name</span> 
</label> 
</div> 


<div class="input-wrapper col-md-4 col-centered"> 
<input class="requiredField subscribe-requiredField input__field input__field--kuro" type="text" name="firma" placeholder="Firma" id="firma"> 
<label class="input__label input__label--kuro" for="subscribe-email"> 
<span class="mail input__label-content input__label-content--kuro">Firma</span> 
</label> 
</div> 
</div> 

<div class="row"> 
<div class="input-wrapper col-md-4 col-centered"> 
<input class="requiredField email subscribe-requiredField input__field input__field--kuro" type="text" name="email" placeholder="Email" id="email"> 
<label class="input__label input__label--kuro" for="subscribe-email"> 
<span class="mail input__label-content input__label-content--kuro">Email</span> 
</label> 
</div> 

<div class="input-wrapper col-md-4 col-centered"> 
<input class="requiredField subscribe-requiredField input__field input__field--kuro" type="text" name="number" placeholder="Telefonnummer" id="number"> 
<label class="input__label input__label--kuro" for="subscribe-email"> 
<span class="mail input__label-content input__label-content--kuro">Telefonnummer</span> 
</label> 
</div> 
</div> 
</div> 
</div> 
</ul> 
<li><button class="submit-button" id="submit" type="submit">Senden</button></li> 
<li><button type="button" class="btn btn-primary added-btn" title="Zur Übersicht." id="gesamt-zurueck" name="submit-clear" >Zurück zur Übersicht</button></li> 
</ul> 
</div> 
</span> 

<div class="hidden"> 
<ul class="checker-wrap"> 
<li><input type="checkbox" id="0" value="Zielgruppendefinition" class="0 checker" name="checkbox-group[]"></li> 
<li><input type="checkbox" id="1" value="Namensfindung & Logoentwicklung" class="1 checker" name="checkbox-group[]"></li> 
<li><input type="checkbox" id="2" value="Exposé" class="2 checker" name="checkbox-group[]"></li> 
<li><input type="checkbox" id="3" value="Textdesign" class="3 checker" name="checkbox-group[]"></li> 
<li><input type="checkbox" id="4" value="Anzeigenkampagnen" class="4 checker" name="checkbox-group[]"></li> 
<li><input type="checkbox" id="5" value="Außenwerbung" class="5 checker" name="checkbox-group[]"></li> 
<li><input type="checkbox" id="6" value="Bautafelgestaltung" class="6 checker" name="checkbox-group[]"></li> 
<li><input type="checkbox" id="8" value="Website" class="8 checker" name="checkbox-group[]"></li> 
<li><input type="checkbox" id="9" value="Social Media" class="9 checker" name="checkbox-group[]"></li> 
<li><input type="checkbox" id="10" value="Digitale Präsentation" class="10 checker" name="checkbox-group[]"></li> 
<li><input type="checkbox" id="11" value="Innenvisualisierungen" class="11 checker" name="checkbox-group[]"></li> 
<li><input type="checkbox" id="14" value="Außenvisualisierungen" class="11 checker" name="checkbox-group[]"></li> 
<li><input type="checkbox" id="12" value="Virtuelle Begehung" class="12 checker" name="checkbox-group[]"></li> 
<li><input type="checkbox" id="13" value="Augmented Reality" class="13 checker" name="checkbox-group[]"></li> 
</ul> 
</div> 

的PHP文件代碼:

<?php 
$errors = ''; 
$myemail = '[email protected]'; 
if(empty($_POST['name']) || 
empty($_POST['email']) || 
empty($_POST['number']) || 
empty($_POST['firma'])) 
{ 
$errors .= "\n Error: Required Field"; 
} 

$name = $_POST['name']; 
$email = $_POST['email']; 
$number = $_POST['number']; 
$firma = $_POST['firma']; 
$checkbox = $_POST['checkbox-group']; 




if (!eregi(
"^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", 
$email)) 
{ 
$errors .= "\n Error: Invalid Email Address"; 
} 

if(empty($errors)) 
{ 
$to = $myemail; 
$email_subject = "Angebot angefordert"; 
$email_body = "\n Name: $name \n Email: $email \n Firma: $firma \n Telefon: \n $number"; 
$headers = "From: $email"; 
$leistungen = "\n Gewählte Leistungen: $checkbox"; 

mail($to, $email_subject, $email_body, $headers, $leistungen); 
} 
?> 

jQuery代碼:

// contact form 
    $("form#form").submit(function() { 
     $("form#form .error").remove(); 
     var s = !1; 
     if ($(".requiredField").each(function() { 
      if ("" === jQuery.trim($(this).val())) { 
       $(this).prev("label").text(), $(this).parent().append('<span class="error">This field is required</span>'), $(this).addClass(
       "inputError"), s = !0; 
       } 
      else if ($(this).hasClass("email")) { 
       var r = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/; 
       r.test(jQuery.trim($(this).val())) || ($(this).prev("label").text(), $(this).parent().append('<span class="error">Invalid email address</span>'), $(
        this).addClass("inputError"), s = !0); 
      } 
     }), !s) { 
      $("form#form input.submit").fadeOut("normal", function() { 
       $(this).parent().append(""); 
      }); 
      var r = $(this).serialize(); 
      $.post($(this).attr("action"), r, function() { 
       $("form#form").slideUp("fast", function() { 
        $(this).before('<div class="success">Your email was sent successfully.</div>'); 
        $(".done-wrapper").toggleClass("hidden"); 
       }); 
      }); 
     } 

     $('.label-wrap ul').find('.'+btn_class[0]).toggleClass("hide-me added haken"); 
     $('#form')[0].reset(); 

     return !1; 

    }); 

回答

1

關於空白頁的問題: 你只是在處理,而不是輸出任何東西。你可以簡單地在最後發佈一個重定向頭 - 可能根據發生的錯誤。

// 307 Temporary Redirect 
header("Location: /foo.php",TRUE,307); 

..或只是輸出處理後的東西。一個好的做法可能是將處理和表單顯示保存在一個文件中 - 然後,您可以預先填寫表單,並填寫不會產生錯誤的字段,並標記那些失敗的字段,以便用戶再次嘗試。

關於複選框組問題:

header("Content-type:text/plain;charset=utf-8"); 
echo print_r($_POST,TRUE); 
+0

謝謝您的幫助:

echo implode(", ", $_POST['checkbox-group']); 

證明自己你真正得到的東西傳承下去。現在,我正在反覆抨擊我的頭。有一個不知名的班級導致了一個錯誤。現在它顯示我的「謝謝你的消息」,它的功能很好。 @flowtron 我不是真的進入PHP,在哪裏把你的代碼? – Buntstiftmuffin

+0

你可以簡單地回顯printr($ _ POST,TRUE)來查看你的表單傳遞了什麼..數組的implode對我來說工作得很好。當然,如果數組是空的,結果字符串也是。 – flowtron

+0

嗯,這可能是一個愚蠢的問題,但我真的不知道如何在這個php文件中回顯printr()。您能否向我提供有關如何實施您的代碼段的信息?我把它粘貼到幾個位置,沒有任何幫助。複選框被「檢查」,所以我認爲該數組不是空的。我認爲這只是沒有正確閱讀的PHP文件... – Buntstiftmuffin