1

最近我受到了讨厌的自动表单填充机器人的攻击,它们用各种垃圾邮件填充了我的喊话表单。我的喊叫表单由一个带有 2 个文本框的 html 文件、一个 ajax 脚本(用于刷新而不重新加载)和我的 php 文件组成,用于处理将所有插入到我的数据库中的数据。

我正在考虑实现一个隐藏的文本框,以对这些机器人进行最低限度的保护,但没有运气,因为我无法将蜜罐数据传递给我的 php 文件。我的代码:

HTML 表单

<form class="form" method="post" action="postdata.php">
    <fieldset id="inputs">
        <input id="name" name="name" type="text" placeholder="name" maxlength="20">   
        <textarea id="message" name="message" type="text" placeholder="message"   maxlength="255"></textarea>   
    </fieldset>
    <fieldset id="actions">
            <input type="submit" id="submit" value="Submit">
    </fieldset>
    </form>

Ajax 脚本

$(function(){refresh_shoutbox();$("#submit").click(function(){var a=$("#name").val();var b=$("#message").val();var c="name="+a+"&message="+b;$.ajax({type:"POST",url:"postdata.php",data:c,success:function(d){$("#shout").html(d);$("#message").val("");$("#name").val("")}});return false})});

function refresh_shoutbox(){var a="refresh=1";$.ajax({type:"POST",headers:{"cache-control":"no-cache"},url:"postdata.php",data:a,success:function(b){$("#shout").html(b)}})}; 

postdata.php 文件

<?php 
if($_POST['name'] or $_POST['message']) {
    $name= $_POST['name'];
    $message= $_POST['message'];
///do other stuff/////
?>

我将在我的 html 表单中插入一个隐藏字段

<input id="email" name="emails" style="display:none"></br>

但我无法将额外的值传递给我现有的 ajax 脚本。尝试了一些代码但没有运气。有什么帮助可以让我的喊话箱重新启动并运行吗?

4

0 回答 0