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

PHP“;联络;表单、电子邮件地址是否可以防止垃圾邮件?

PHP“;联络;表单、电子邮件地址是否可以防止垃圾邮件?,php,forms,email,spam,Php,Forms,Email,Spam,所以我在网上得到了一个“联系我们”表单的PHP代码(我自己不编写PHP),但它包含了我的完整电子邮件地址。以下表格是否确保我的电子邮件不受垃圾邮件发送者的攻击 contact.php文件(真实电子邮件已替换为MYEMAIL@COMPANY.COM): html代码段: <form method="POST" action="contact.php"> ... </form> ... 我已经读到,PHP中包含的电子邮件地址对于爬虫来说是完全安全的,因为它都是

所以我在网上得到了一个“联系我们”表单的PHP代码(我自己不编写PHP),但它包含了我的完整电子邮件地址。以下表格是否确保我的电子邮件不受垃圾邮件发送者的攻击

contact.php文件(真实电子邮件已替换为MYEMAIL@COMPANY.COM):


html代码段:

<form method="POST" action="contact.php">

...

</form> 

...

我已经读到,PHP中包含的电子邮件地址对于爬虫来说是完全安全的,因为它都是服务器端的(假设您的服务器/站点是安全的)。不确定这是真是假,有太多的信息,我在网上搜索后找不到一个明确的答案。如果有人能确认此代码是否可以安全使用,那就太好了,谢谢

除非他们有权访问该文件并读取它,否则你就没事了。他们做不到。正如您所说,它都是服务器端的。

地址是安全的,除非文件以纯文本形式提供且可读(正如Sean所说),但您应该继续阅读,因为您容易受到这些攻击。

您的电子邮件受到保护,因为它都是服务器端的,除非他有fpt权限访问您的网站,或者您有某种类型的漏洞

你也可能会考虑这样的事情来预防洪水。

    session_start()

    define('TIME_INTERVAL', 120);

    if(isset($_SESSION['ip']) && (time() - $_SESSION['last_post']) < TIME_INTERVAL) 
    }
       die('stop spamming !');
    {

    $_SESSION['last_post'] = time();
    $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];

简单的回答,你是安全的。因为PHP元素只能在服务器上处理,因此任何人都无法查看您的电子邮件地址。

这是真的-只要您的服务器正确配置为执行PHP,您的地址就是安全的。这并不意味着垃圾邮件发送者不能只填写你的表格就向你发送垃圾邮件——他们会的,而且这就是联系表格的生活,除非你在填写算术题、验证码或越来越不方便用户的东西时加入圈套。看起来写它的人自己也不会写太多PHP代码:PAlex,这个评论让我很伤心,因为我认为我选择了错误的表单模板:(lol…Michael,如果字段(姓名、电子邮件)被删除,机器人可能还会发送垃圾邮件吗--xxxx@xxxx.xxx所需格式和消息)所有这些都是必需的/需要验证吗?我已经为人类垃圾邮件做好了充分的准备哈哈。我将来可能会集成一个验证码。哇,谢谢,这看起来很棒,我假设两者都会进入contact.php文件,但不确定在哪里。随处都可以吗?看起来我需要开始更熟悉javascript/php。我可以理解代码:)是的,将它们添加到您的contact.php中,并使用$validationOK=validate_mail($email);//它将赋值为真或假;关于flood脚本,请在执行任何操作之前将其添加到php文件的顶部。此外,关于=split(“@”,$email),您可能希望使用explode来尝试它,因为它可能会弹出一些错误。
    session_start()

    define('TIME_INTERVAL', 120);

    if(isset($_SESSION['ip']) && (time() - $_SESSION['last_post']) < TIME_INTERVAL) 
    }
       die('stop spamming !');
    {

    $_SESSION['last_post'] = time();
    $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
function validate_mail($email)
{
 if (filter_var($email, FILTER_VALIDATE_EMAIL)) 
 {
    list($username,$domain)=split('@',$email);
    if(checkdnsrr($domain,'MX')) 
    {
      return true;
    } 
 }
 return false;
}