2016-07-28 192 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