联系表单发送空电子邮件

4

我有一个很好用的联系表格,如果有人给我发邮件,我可以收到。但是不知道为什么我一直收到空邮件。因为没有人能够访问那个页面,所以我确定不是有人给我发送了空邮件。我不知道问题出在哪里,请帮忙解决一下吗?

   <form method="post" id="contactform" name="contactform" action="comment.php" id="ContactForm" name="ContactForm" method="post">

    <fieldset>

    <label>Email *</label>
    <input class="text" type="text" name="email">
    <label>Name *</label>
    <input class="text" type="text" name="name" />

    </fieldset>

    <input class="submit-button" type="submit" name="submit" id="submit" value="Send" />
</form>

and my contact.php

    <?php


    $email.= "<b>Email     : </b>".trim($_POST['company'])."<br/>";
    $email.= "<b>Name      : </b>".trim($_POST['name'])."<br/>";



    //Replace YourEmailAddress@Yourdomain.com with yours, eg:contactus@mywebsite.com
        //Both on the next line and on the mail function below.
    $headers = "From: email@email.com\r\n";
    $headers .= "Content-Type: text/html";
    mail(
            "Your Name<myname>", 
            "Header", 
            $email,
            $headers
    );
        header("www.google.com");
?>

我的php表单中的“header”部分是在发送表单后将用户重定向到页面。
提前感谢。

你是否检查了服务器日志,以查看内容是否至少到达了那里? - Trent Scott
2
它要么运行良好,要么不行。选一个?! - Lightness Races in Orbit
3个回答

6

您可能会受到机器人的访问。即使没有POST数据,您的脚本也将始终触发电子邮件。

在您的联系脚本中,作为基本保护措施,请添加类似以下内容:

if ($_POST["submit"] != "Send") 
 die();

根据评论中指出的需要,进一步添加验证。


1
保护力度较弱,但是这是一个不错的开端(+1 是为了其合理性)。 - Lightness Races in Orbit
如果是来自机器人,通常会有垃圾数据吗?还是不一定? - Wesley Murch
1
@Mad 我的意思是一个搜索引擎机器人正在进行GET请求,而不是试图发送垃圾邮件的恶意机器人。对于恶意机器人来说,这确实是一种过于弱的保护,就像@Tomalak所说的那样。 - Pekka
1
此外,验证表单字段本身(确保它们不为空)。另外,我会在额外的字段中添加一个简单的人类验证字段(“将这两个数字相加”),以尝试防止表单机器人。 - Jared Farrish
盲目猜测URL?这是一种相当奇怪的行为! - Wesley Murch
显示剩余4条评论

3
可能是因为您似乎没有验证表单输入,所以它可能会被提交为空白。有时我会对网站进行此操作(测试验证,最终发送空白电子邮件),但我通常会稍后添加消息以“验证您的输入!” 如果您确实进行验证,请原谅我,但这是我的直觉,因为我看到很多人甚至无法验证必填输入的存在,更不用说完整性了。

不,根据我的经验,大多数初学脚本编写者都不会费心进行验证。通常你需要受到严重的打击或有强有力的商业论据才会“麻烦地”去做这件事。 - Jared Farrish
我并不是有意要惹恼任何人,我只是喜欢看看其他网站从用户界面的角度如何处理表单验证,而答案通常是“他们没有这样做”。 - Wesley Murch

1

表单中不存在该公司,但您尝试解析它。

也许2个表单名称声明不是很好,但这不是您的答案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接