contact.php发送空白电子邮件
我的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>
也许你需要添加name="submit_button"
到您的提交按钮
公告你所有的代码在if(isset($_POST["submit_button"]))
区块
我是不是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();
谢谢!那一个为我工作:) – GAX
你应该包括这里面的一切,如果
if(isset($_POST["submit_button"])) {
所以不要在一个简单的访问发送电子邮件
您的代码应检查是否有电子邮件的任何值,它不是空白,为此,你需要做的这个
`
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();
`
试着用这个替换您的。
你的代码看起来粗糙笔记很好,但你的邮件功能被宣告你的后置条件之外,所以当你打开我们的联系页面这是给你的错误,当你打开了该页面(而不提交表格) ,那么你的数据变量都没有设置,并通过只是击中的页面通常您呼叫的邮件功能,因为这不是包裹在邮寄支票的条件,简单的解决方法是
<?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>
编码愉快。
什么是第5行的$ valueArray?它不应该是'$价值'吗? – NDFA