首先,我不知道我是否选择了正确的标题,所以我会解释。我的网站收到很多垃圾评论,所以为了打击垃圾邮件,我在我的comment.php(wordpress)表单中添加了一个隐藏的输入 - 它的评论形式不是联系或其他形式。 HTML:
<input type="text" name="url" id="url" value="'. $comment_author_url .'" size="44" tabindex="3" />
<span class="error"><?php echo $urlErr; ?></span>
CSS:
input[type="text"]#url { display: none; }
一开始,为了阻止机器人发布评论,我添加了一个jquery代码。它工作正常,但我仍然收到垃圾评论。我在网上看到这些机器人已禁用javascript,所以我的方法毫无意义。
所以我尝试使用php ...我试过的第一个代码
$url_error = '';
$urlErr = '';
if($_REQUEST['submit']){
if(trim($_REQUEST['url'] !== "")){
$urlErr = "Go away";
}else {
$url = trim($_REQUEST['url']);
}
}
使用此PHP代码,如果机器人将填充hiddent输入URL,那么它将不会提交评论。但是代码没有用。
我尝试了w3school的另一个代码:
$urlErr = "";
$url = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (!empty($_POST["url"])) {
$urlErr = "Go away";
} else {
$url = test_input($_POST["url"]);
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
但也没有奏效。那么我做错了什么? :( 我需要使用php ...它是阻止垃圾邮件发送者的非常有趣的方法。
答案 0 :(得分:0)
你不能添加这样的字段,因为wp的核心处理所有请求,你最好禁用评论并安装facebook或disqus小部件。
但如果您仍想添加字段,我可以向您推荐一个插件:https://wordpress.org/plugins/anti-spam/
反垃圾邮件插件会自动阻止评论中的垃圾邮件,无形地阻止用户和管理员
答案 1 :(得分:0)
我解决这个问题的方法:
首先,我添加了一个隐藏的输入...所以,如果我的网站上的机器人评论它将看到这个隐藏的输入,它将填充它...如果有人填写此输入并单击提交按钮它将收到一个jquery停止警报。但由于许多机器人禁用了JavaScript,因此它涉及解决方案2(基于@fred指示)。首先,我默认禁用了提交输入按钮,然后添加了一个复选框。因此,如果有人需要提交评论,他必须选中复选框以启用提交按钮(jquery代码成功执行的操作)。因此,当机器人在我的网站上发表评论时,即使他们经过了第一道障碍,他们也需要选中复选框以提交按钮......只有在启用了JavaScript的情况下才触发此按钮(但如果他们启用JavaScript后,他们将不会传递隐藏的输入。)
我将看看这种方法是否有效......但在此之前,这是一个想法(没有任何烦人的验证码或复杂的操作)!