簡體   English   中英

如何修復此php電子郵件提交表單?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM