Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.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 - Fatal编程技术网

如何修复此php电子邮件提交表单?

如何修复此php电子邮件提交表单?,php,email,Php,Email,我是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 Nam


我是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>

setTimeout(函数(){
//移动到一个新的位置,或者你可以做其他事情
window.location.href=“contact.html”;
}, 500);

在保护表单时,需要应用许多因素。最好是继续前进,并遵循一个好的指南(从许多人那里)。

这将加强你的安全。 此外,将验证码添加到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.');
    }
}

您可能还需要验证和/或过滤/清理您的数据,以防止用户输入漏洞(即电子邮件标题注入-可能导致表单/电子邮件垃圾邮件)。

您好,我们不提供解决方案,但提供帮助。尝试一些东西,如果不起作用,请寻求帮助。如果没有一些输入字段检查/卫生,您可能会打开电子邮件标题注入。特别是,根据最初的帖子,阻止空白电子邮件可能不是很有帮助-大多数机器人将提交垃圾邮件内容,而不是空白内容,这很难过滤。本答案中的链接文章是进一步探索这一问题的良好开端。
 $email = $_POST['email'] ?? null;