[英]How do I fix this php email submit form?
我是PHP新手,如何更改此代码,以便此php邮件文件检查表单数据是否确实存在?
我的目标是通过仅在浏览器中访问php邮件来防止漫游器和恶意用户发送空白电子邮件。
问候,
乔治
<?php
$to_email = 'myemail@myemail.com';
$subject = 'Service Request';
$Body_Msg = "A new contact form submitted by ".$_REQUEST["F_Name"].
" \r\n Name: ". $_REQUEST["F_Name"].
"\r\nPhone No: ".$_REQUEST["your_phone"].
" \r\nEmail: ".$_REQUEST["email_id"].
"\r\nServices wanted: ".$_REQUEST["services"].
"\r\nAddress: ".$_REQUEST["Address"].
"\r\nMessage: ".$_REQUEST["Message"].
nl2br($Body_Msg);
$headers = 'From: website@mywebsite.com';
mail($to_email,$subject,$Body_Msg,$headers);
echo "Thank you for contacting My Company. We will revert you shortly.";
?>
<script type="text/javascript">
window.setTimeout(function(){
// Move to a new location or you can do something else
window.location.href = "contact.html";
}, 500);
</script>
保护表单时有许多因素适用。 最好继续并遵循良好的指南(在许多指南中)。 https://wp-mix.com/php-securing-email-scripts/
这将加强您的安全性。 另外,将验证码添加到html表单始终是一个好习惯。
祝好运
这是一些代码,用于检查表单属性电子邮件是否通过HTTP POST传递,如果是,则将其分配给变量。
<?php
if($_SERVER['REQUEST_METHOD']=='POST') {
if(isset($_POST['email'])) {
$email = $_POST['email'];
}
if(is_null($email)) {
die('No email field posted.');
}
}
注意:传递的空字符串不会以“未发布电子邮件字段”结尾。 信息。
您可以将上述if-isset和赋值减小为等效值:
$email = $_POST['email'] ?? null;
您可能还需要验证和/或过滤/清理数据,以防止用户输入漏洞(例如,电子邮件标题注入-可能导致表单/电子邮件垃圾邮件)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.