[英]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.