Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP邮件-基本表单的清理和验证_Php_Email_Phpmailer_Email Validation_Email Headers - Fatal编程技术网

PHP邮件-基本表单的清理和验证

PHP邮件-基本表单的清理和验证,php,email,phpmailer,email-validation,email-headers,Php,Email,Phpmailer,Email Validation,Email Headers,我正在寻找最安全、最有效的方法来使用php邮件作为基本表单 我有下面的代码,它似乎工作正常,但我对php非常陌生,如果有更好的方法来执行它,我希望输入。我应该做更多的工作来防止注射吗?或者我甚至需要用纯文本邮件来担心这一点 现在我正在清理电子邮件字段。我应该清理所有字段吗?我也知道如何验证电子邮件,但问题是我不喜欢这样,如果一个合法用户写了一条超长的消息,并且不小心在他的电子邮件中输入了一个错误,那么php会给出一个无效的电子邮件错误,并抹去整条消息。我宁愿把它消毒一下,信息还是会被发送出去。我

我正在寻找最安全、最有效的方法来使用php邮件作为基本表单

我有下面的代码,它似乎工作正常,但我对php非常陌生,如果有更好的方法来执行它,我希望输入。我应该做更多的工作来防止注射吗?或者我甚至需要用纯文本邮件来担心这一点

现在我正在清理电子邮件字段。我应该清理所有字段吗?我也知道如何验证电子邮件,但问题是我不喜欢这样,如果一个合法用户写了一条超长的消息,并且不小心在他的电子邮件中输入了一个错误,那么php会给出一个无效的电子邮件错误,并抹去整条消息。我宁愿把它消毒一下,信息还是会被发送出去。我确实有jqueryvalidate,这也很有帮助

我愿意接受任何关于如何改进此表单的建议,或者如果您看到我做错了什么,请告诉我!多谢各位

<?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>
名称: