2017-02-28 226 views
-1

我的PHP表单对我来说工作正常,但不知何故,我收到空白的电子邮件。我试图直接打开contact.php www.domain.com/php/contact.php,就是这样。它发送了一封空邮件。有人可以帮我预防吗?contact.php发送空白电子邮件

PHP

$mailTo = '[email protected]'; 
$mailFrom = $_POST['email']; 
$mailSubject = 'Kontakt'; 
$returnPage = 'versand_erfolgreich.php'; 
$returnErrorPage = 'versand_fehler.php'; 
$mailText = ""; 
if(isset($_POST["submit_button"])) { 

    foreach($_POST as $name => $value) { 

     if(is_array($value)) { 

      $mailText .= $name . ":\n"; 

      foreach($valueArray as $entry) { 

      $mailText .= " " . $value . "\n"; 
      } // ENDE: foreach 
     } // ENDE: if 

     else { 

      $mailText .= $name . ": " . $value . "\n"; 
     } // ENDE: else 
    } // ENDE: foreach 
} // if 

if(get_magic_quotes_gpc()) { 

    $mailtext = stripslashes($mailtext); 
} 

$mailSent = @mail($mailTo, $mailSubject, $mailText, "From: ".$mailFrom); 

if($mailSent == TRUE) { 
    header("Location: " . $returnPage); 
} 
else { 
    header("Location: " . $returnErrorPage); 
} 

exit(); 

HTML

 <form class="form1" id="formular" role="form" action="php/kontakt.php" id="subscribeForm" method="POST"> 


     <input class="inputsolo" type="text" name="Name" id="fname" placeholder="Name*" required="required"> 
     <input class="inputsolo" type="text" name="email" id="email" placeholder="E-Mail Adresse*" required="required"> 
     <input class="inputsolo" type="text" name="Telefon" id="phone" placeholder="0221 111 222*" required="required"> 
     <input class="inputsolo" type="text" name="Betreff" id="betreff" placeholder="Betreff"> 
     <input tabindex="-1" class="inputsolo betreff2" type="text" value="1" name="Betreff2" id="betreff2" placeholder="Betreff"> 
     <input class="inputsolo paket" type="text" name="Ausgewählt:" id="web1" value="Webpaket Basis" readonly><img class="closewahl close1" src="css/images/close.png" alt="close"></img></input> 
     <input class="inputsolo paket" type="text" name="Ausgewählt:" id="web2" value="Webpaket Erweitert" readonly><img class="closewahl close2" src="css/images/close.png" alt="close"></img></input> 
     <input class="inputsolo paket" type="text" name="Ausgewählt:" id="web3" value="Webpaket Business" readonly><img class="closewahl close3" src="css/images/close.png" alt="close"></img></input> 
     <input class="inputsolo paket" type="text" name="Ausgewählt:" id="web4" value="Webpaket Universal" readonly><img class="closewahl close4" src="css/images/close.png" alt="close"></img></input> 
     <textarea class="inputpoly" name="message" placeholder="Ihre Nachricht.." id="message"></textarea> 

     <p id="fehler400"><u>ACHTUNG:<br>Es ist ein Fehler aufgetreten.</u><br><small>Verdacht auf Spam-Bot.</small><br>Bitte kontaktieren Sie uns per E-Mail oder telefonisch.<br><font style="font-family:arial,sans-serif;"><a href="tel:+32221212121" style="text-decoration:none;outline:none;color:#008aff;">+32221212121</a></font></p> 
      <input class="blue-btn" type="submit" id="send" value="Senden"> 
     </form> 
+0

什么是第5行的$ valueArray?它不应该是'$价值'吗? – NDFA

回答

0

也许你需要添加name="submit_button"到您的提交按钮

您发送电子邮件,即使你的$ _POST是空的,所以你shoult把

公告你所有的代码在if(isset($_POST["submit_button"]))区块

0

我是不是PHP的人,但我认为情况应该有如下:

$mailTo = '[email protected]'; 
$mailFrom = $_POST['email']; 
$mailSubject = 'Kontakt'; 
$returnPage = 'versand_erfolgreich.php'; 
$returnErrorPage = 'versand_fehler.php'; 
$mailText = ""; 
if(isset($_POST["submit_button"])) { 

    foreach($_POST as $name => $value) { 

     if(is_array($value)) { 

      $mailText .= $name . ":\n"; 

      foreach($valueArray as $entry) { 

      $mailText .= " " . $value . "\n"; 
      } // ENDE: foreach 
     } // ENDE: if 

     else { 

      $mailText .= $name . ": " . $value . "\n"; 
     } // ENDE: else 
    } // ENDE: foreach 


    if(get_magic_quotes_gpc()) { 

    $mailtext = stripslashes($mailtext); 
} 

$mailSent = @mail($mailTo, $mailSubject, $mailText, "From: ".$mailFrom); 

if($mailSent == TRUE) { 
    header("Location: " . $returnPage); 
} 
else { 
    header("Location: " . $returnErrorPage); 
} 


    } // if 



exit(); 
+0

谢谢!那一个为我工作:) – GAX

0

你应该包括这里面的一切,如果

if(isset($_POST["submit_button"])) {

所以不要在一个简单的访问发送电子邮件

0

您的代码应检查是否有电子邮件的任何值,它不是空白,为此,你需要做的这个

` 

if(isset($_POST["submit_button"]) && $_POST['email']!='') { 
$mailTo = '[email protected]'; 
$mailFrom = $_POST['email']; 
$mailSubject = 'Kontakt'; 
$returnPage = 'versand_erfolgreich.php'; 
$returnErrorPage = 'versand_fehler.php'; 
$mailText = ""; 
    foreach($_POST as $name => $value) { 
     if(is_array($value)) { 
      $mailText .= $name . ":\n"; 
      foreach($valueArray as $entry) { 
      $mailText .= " " . $value . "\n"; 
      } 
     } 
     else { 
      $mailText .= $name . ": " . $value . "\n"; 
     } 
    } 
}else{ 
    return false; 

} 如果(get_magic_quotes_gpc()){

 $mailtext = stripslashes($mailtext); 
} 
$mailSent = @mail($mailTo, $mailSubject, $mailText, "From: ".$mailFrom); 
if($mailSent == TRUE) { 
    header("Location: " . $returnPage); 
} 
else { 
    header("Location: " . $returnErrorPage); 
} 

exit(); 
` 

试着用这个替换您的。

0

你的代码看起来粗糙笔记很好,但你的邮件功能被宣告你的后置条件之外,所以当你打开我们的联系页面这是给你的错误,当你打开了该页面(而不提交表格) ,那么你的数据变量都没有设置,并通过只是击中的页面通常您呼叫的邮件功能,因为这不是包裹在邮寄支票的条件,简单的解决方法是

  <?php 
      if(isset($_POST["submit_button"])) { 

       $mailTo = '[email protected]'; 
       $mailFrom = $_POST['email']; 
       $mailSubject = 'Kontakt'; 
       $returnPage = 'versand_erfolgreich.php'; 
       $returnErrorPage = 'versand_fehler.php'; 
       $mailText = ""; 

       foreach($_POST as $name => $value) { 

        if(is_array($value)) { 

         $mailText .= $name . ":\n"; 

         foreach($valueArray as $entry) { 

         $mailText .= " " . $value . "\n"; 
         } // ENDE: foreach 
        } // ENDE: if 

        else { 

         $mailText .= $name . ": " . $value . "\n"; 
        } 
       } 

      if(get_magic_quotes_gpc()) { 

       $mailtext = stripslashes($mailtext); 
      } 

      $mailSent = @mail($mailTo, $mailSubject, $mailText, "From: ".$mailFrom); 

      if($mailSent == TRUE) { 
       header("Location: " . $returnPage); 
      } 
      else { 
       header("Location: " . $returnErrorPage); 
      } 
      } 
      exit(); 
      ?> 

还有,是不是需要声明这些到后检查条件以外的变量,因为你不会需要它们,所以只有在你打算用它们做某事时才设置它们:)

还检查你缺少你的提交按钮的名称属性(这是非常关键),这应该是:

<form class="form1" id="formular" role="form" action="php/kontakt.php" id="subscribeForm" method="POST"> 


    <input class="inputsolo" type="text" name="Name" id="fname" placeholder="Name*" required="required"> 
    <input class="inputsolo" type="text" name="email" id="email" placeholder="E-Mail Adresse*" required="required"> 
    <input class="inputsolo" type="text" name="Telefon" id="phone" placeholder="0221 111 222*" required="required"> 
    <input class="inputsolo" type="text" name="Betreff" id="betreff" placeholder="Betreff"> 
    <input tabindex="-1" class="inputsolo betreff2" type="text" value="1" name="Betreff2" id="betreff2" placeholder="Betreff"> 
    <input class="inputsolo paket" type="text" name="Ausgewählt:" id="web1" value="Webpaket Basis" readonly><img class="closewahl close1" src="css/images/close.png" alt="close"></img></input> 
    <input class="inputsolo paket" type="text" name="Ausgewählt:" id="web2" value="Webpaket Erweitert" readonly><img class="closewahl close2" src="css/images/close.png" alt="close"></img></input> 
    <input class="inputsolo paket" type="text" name="Ausgewählt:" id="web3" value="Webpaket Business" readonly><img class="closewahl close3" src="css/images/close.png" alt="close"></img></input> 
    <input class="inputsolo paket" type="text" name="Ausgewählt:" id="web4" value="Webpaket Universal" readonly><img class="closewahl close4" src="css/images/close.png" alt="close"></img></input> 
    <textarea class="inputpoly" name="message" placeholder="Ihre Nachricht.." id="message"></textarea> 

    <p id="fehler400"><u>ACHTUNG:<br>Es ist ein Fehler aufgetreten.</u><br><small>Verdacht auf Spam-Bot.</small><br>Bitte kontaktieren Sie uns per E-Mail oder telefonisch.<br><font style="font-family:arial,sans-serif;"><a href="tel:+32221212121" style="text-decoration:none;outline:none;color:#008aff;">+32221212121</a></font></p> 
     <input class="blue-btn" type="submit" id="send" value="Senden" name="submit_button"> 
    </form> 

编码愉快。

+0

感谢您的答案:)我已经改变了你们在这里建议我的一切,现在它工作正常! :)) – GAX

+0

@GAX很高兴知道:) Upvote和马克正确,如果这有助于你。 :) –

+0

我会upvote,但我不能。我是新的在stackoverflow :) – GAX