繁体   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