Php避免没有验证码的垃圾邮件

时间:2014-02-18 10:34:22

标签: php email spam

现在我从我的联系表单中收到太多垃圾邮件,下面是它的html视图,

    <form id="contactForm" action="processform.php" method="post" class="positioned" style="display: inline;">
        <ul>
            <li>
                <label id="textname">Name :</label>
                <input type="text" name="senderName" id="senderName" placeholder="Type your name" required="required" maxlength="200">
            </li>
    <li>
                <label id="textemail">Email :</label>
                <input type="text" name="senderEmail" id="senderEmail" placeholder="Type your email" required="required" maxlength="200">
            </li>
<li>
            <label id="textmessage" for="senderfeedback">Feedback :</label>
            <input type="textarea" name="senderfeedback" id="senderfeedback" placeholder="Type your Message here" required="required">
        </li>
    <li>
                <label></label>
                <input type="submit" id="sendMessage" name="sendMessage" class="button" value="Submit">
            </li>
       </ul>    
    </form>

我认为一些自动机器人正在访问我的processform.php文件。有没有办法阻止这个?

2 个答案:

答案 0 :(得分:1)

一种简单的方法就是这样。

提出一个简单的数学问题,如5+3 = ?(每次随机生成)并检查输入的答案是否正确。

答案 1 :(得分:0)

在表单中,执行

session_start();
$num1=rand(1, 5);
$num2=rand(1, 5);
$_SESSION['num1']=$num1;
$_SESSION['num2']=$num2;
echo "<li><label>What is ".(string)($num1)."+".(string)($num2)."?</label><input type='text' id='sum' name='sum'></input></li>

在您的processform.php中,读出$_POST['sum']的值并检查是否等于一起添加的会话变量。然后才处理请求。

如果您在代码中发现错误,可以保留它们;)