gpt4 book ai didi

PHP电子邮件表单拍摄空白电子邮件

转载 作者:行者123 更新时间:2023-12-04 00:41:48 25 4
gpt4 key购买 nike

我为一个网站整理了一个简单的 PHP 电子邮件表单,但它经常发送空白电子邮件。大多数字段都是“必填”的,我使用验证码系统有一段时间了,但空白电子邮件不断出现。

HTML 标记:

<form action="mail_send.php" method="post">

<input name="name" type="text" required="required" size="40" />

<input name="email" type="text" required="required" size="40" />

<input name="company" type="text" size="40" />

<textarea name="message" cols="80" rows="7" required="required"></textarea>

<input type="submit" value="Submit" />

</form>

PHP:
$name = $_POST['name'];
$email = $_POST['email'];
$company = $_POST['company'];
$message = $_POST['message'];
$formcontent=" FROM:\n $name \n\n COMPANY:\n $company \n\n MESSAGE:\n $message";
$recipient = "email address";
$subject = "Subject";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");

echo "<script>window.location = 'confirmation.php'</script>";

当我测试它时一切正常,我收到来自表单的电子邮件完全没有问题,但由于某种原因,我经常收到空白电子邮件(可能来自机器人)。

有任何想法吗?

谢谢!

最佳答案

如果您的 HTML 表单和 PHP 在同一个文件中,而您没有检查这些输入中的任何一个是否为空,则可能会发生这种情况。如果不在同一个文件中,不检查是否为空,仍然适用。

您可能是机器人的受害者,或者是一些经常访问您网站的 clown ,只是为了让您失望。

或者表单的方法的 URL 正在被某人或某物直接访问,我觉得这可能是这里的问题,因为你确实有 required供您输入。

  • 检查您的访问日志。

  • 所以,使用条件 !empty()针对您的所有输入。
  • http://php.net/manual/en/function.empty.php

  • IE。:

    旁注: ||检查一个或任何一个是否为空。
    if( !empty($_POST['name']) || !empty($_POST['email']) ){

    $name = $_POST['name'];
    $email = $_POST['email'];

    // process mail

    }

    您可以添加其他的。

    或者给你的提交一个名称属性:
    <input name="submit" type="submit" value="Submit" />

    然后检查按钮是否已设置并且输入是否为空:
    if(isset(_POST['submit'])){

    if(!empty($_POST['name']) || !empty($_POST['email']) ){

    $name = $_POST['name'];
    $email = $_POST['email'];

    // process mail

    }

    }

    您还应该对电子邮件输入使用过滤器:
  • http://php.net/manual/en/function.filter-var.php
  • http://php.net/manual/en/filter.examples.validation.php

  • 另外,如果您决定稍后使用 radio /复选框,请使用 isset()反对那些。

    旁注:

    您可以在表单中添加一个复选框以检查它是否被选中,并使用条件语句处理它。

    脚注:

    "Most of the the fields are "required" and I was using a captcha system for a while, but the blank emails kept coming."



    您的问题中没有任何验证码来支持这一点。

    注意:

    required 属性仅适用于支持 HTML5 的浏览器。因此,如果您网站的任何这些机器人或访问者正在使用不支持 HTML5 的浏览器或可以绕过它的技术,那么这也可能是另一个(贡献)因素。

    关于PHP电子邮件表单拍摄空白电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35613202/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com