0
我正在尋找最安全和最有效的方式來使用PHP郵件的基本形式。PHP郵件 - 基本形式的消毒和驗證
我有下面的代碼,它似乎正常工作,但我很新的PHP,並希望輸入,如果有更好的方法來執行此操作。我應該多做些什麼來幫助防止注射?或者我甚至需要擔心用純文本電子郵件?
現在我正在清理電子郵件字段。我應該清理所有領域嗎?我想出瞭如何驗證電子郵件,但問題是我不喜歡它,如果一個合法用戶寫超長消息,並意外地在他的電子郵件中輸入一個錯誤,那麼PHP提供了一個無效的電子郵件錯誤,擦掉整個信息。我寧願只是消毒它,並且消息仍然被髮送。我確實有Jquery驗證,所以也有幫助。
我願意接受任何關於如何改善此表格的建議,或者如果您發現我做錯了任何事情,請告訴我!謝謝。
<?php
if (isset($_POST['submit'])) {
$send_to = "[email protected]";
$subject = "Contact Page Form";
$headers =
'From: "Sender Name" <[email protected]>' . "\r\n" .
'Reply-To: ' . $_POST['name'] . '<' . $_POST['email'] . '>' . "\r\n" .
'Content-type: text/plain; charset=iso-8859-1';
'X-Mailer: PHP/' . phpversion();
$success = "<p class=\"formsuccess\">Thank you. We received your message!</p>";
$name = $_POST['name'];
$email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
$phone = $_POST['phone'];
$message = $_POST['message'];
$content = "
Name: $name
Email: $email
Phone: $phone
Message: $message
";
mail($send_to,$subject,$content,$headers);
echo $success;
} else {
?>
<form id="contactform" method="post">
NAME: <input type="text" name="name" required>
EMAIL: <input type="email" name="email" required>
PHONE: <input type="tel" name="phone" required>
MESSAGE:<textarea name="message" required></textarea>
<button type="submit" name="submit">Submit</button>
</form>
<script>
$("#contactform").validate();
</script>
<?php } ?>