我試圖做一個無驗證的垃圾郵件阻止聯繫表格。從用戶的角度來看,它似乎正在工作,因爲點擊發送按鈕後出現謝謝頁面。聯繫表格爲空;聯繫表格回覆到錯誤的地址
問題#1:到達的電子郵件是空白的,不包含發送的消息的內容。在這裏找到一個類似的帖子,但提供的建議不適用:Contact form problem - I do receive messages, but no contents (blank page)。
問題#2:回覆消息也顯示在同一個收件箱中,而不是發送到表單用戶的地址 - 當測試時,它是我自己的。
的HTML:
<form method="post" action="submit.php">
<p>Name:<br>
<input type="text" name="Name" id="Name" /></p>
<p>Phone:<br>
<input type="text" name="Phone" id="Phone" /></p>
<p>Email:<br>
<input type="text" name="Email" id="Email" /></p>
<p class="antispam">Leave this empty:<br />
<input name="url" /></p>
<p style="color:#06C;">Forward to:<br>
<input type="text" name="Forwardto" id="Forwardto" /></p>
<p>Message:<br />
<textarea name="Message" rows="20" cols="20" id="Message"></textarea></p>
<p><input type="submit" value="Send" class="submit-button" /></p>
</form>
的PHP(我的實際地址刪除):
<?php
if(isset($_POST['url']) && $_POST['url'] == ''){
$youremail = '[email protected]';
$body = "This is the form that was just submitted:
Name: $_POST[name]
Phone: $_POST[phone]
E-Mail: $_POST[email]
Forward to: $_POST[forwardto]
Message: $_POST[message]";
if($_POST['email'] && !preg_match("/[\r\n]/", $_POST['email'])) {
$headers = "From: $_POST[email]";
} else {
$headers = "From: $youremail";
}
mail($youremail, 'Contact Form', $body, $headers);
}
?>
相關的CSS:
<style type="text/css">
.antispam { display:none;}
</style>
是在上面的代碼中的問題。 。 。或者可能會有其他事情發生?
您是否嘗試過使用'$ _ POST [ '電子郵件']'而不是' $ _POST ['email']' - 大寫「E」? – Mateusz 2013-05-09 14:39:08
你也應該打開錯誤報告,你會被告知php你使用的$ _POST索引是無效的 – 2013-05-09 14:48:19
php數組鍵是區分大小寫的。所有的$ _POST鍵都必須與表單中'name'的外殼匹配。你正在提交'電子郵件','電話'等,但正試圖訪問'電子郵件','電話'等... – 2013-05-09 14:51:34