PHP邮件-基本表单的清理和验证
我正在寻找最安全、最有效的方法来使用php邮件作为基本表单 我有下面的代码,它似乎工作正常,但我对php非常陌生,如果有更好的方法来执行它,我希望输入。我应该做更多的工作来防止注射吗?或者我甚至需要用纯文本邮件来担心这一点 现在我正在清理电子邮件字段。我应该清理所有字段吗?我也知道如何验证电子邮件,但问题是我不喜欢这样,如果一个合法用户写了一条超长的消息,并且不小心在他的电子邮件中输入了一个错误,那么php会给出一个无效的电子邮件错误,并抹去整条消息。我宁愿把它消毒一下,信息还是会被发送出去。我确实有jqueryvalidate,这也很有帮助 我愿意接受任何关于如何改进此表单的建议,或者如果您看到我做错了什么,请告诉我!多谢各位PHP邮件-基本表单的清理和验证,php,email,phpmailer,email-validation,email-headers,Php,Email,Phpmailer,Email Validation,Email Headers,我正在寻找最安全、最有效的方法来使用php邮件作为基本表单 我有下面的代码,它似乎工作正常,但我对php非常陌生,如果有更好的方法来执行它,我希望输入。我应该做更多的工作来防止注射吗?或者我甚至需要用纯文本邮件来担心这一点 现在我正在清理电子邮件字段。我应该清理所有字段吗?我也知道如何验证电子邮件,但问题是我不喜欢这样,如果一个合法用户写了一条超长的消息,并且不小心在他的电子邮件中输入了一个错误,那么php会给出一个无效的电子邮件错误,并抹去整条消息。我宁愿把它消毒一下,信息还是会被发送出去。我
<?php
if (isset($_POST['submit'])) {
$send_to = "receiver@domain.com";
$subject = "Contact Page Form";
$headers =
'From: "Sender Name" <sender@domain.com>' . "\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 } ?>
姓名:
电邮:
电话:
信息:
提交
$(“#contactform”).validate();
如果服务器端验证失败,您只需使用提交的值重新填充表单:
NAME: <input type="text" name="name" value="<?php echo $name; ?>" required>
名称: