我已经实施了前端表单,这使得未注册的用户可以在我的网站上发布。
一切都在完美运作,我唯一的问题是验证码的实施。
我发现的所有验证码解决方案都需要在表单操作中放置一些外部文件。但是我的表单有这样的语法:
<form action="">
我不知道该怎么办?如果我把文件放在动作字段中,我就不能再添加帖子了。如何将验证码的验证码放在与表单相同的文件中?或者更好的解决方案?
非常感谢!
答案 0 :(得分:1)
如果你熟悉php,请使用Zend Framework。我将它用于我的所有验证码。有关详细信息,请查看http://framework.zend.com/manual/2.0/en/modules/zend.captcha.operation.html。它通常与http://framework.zend.com/manual/2.0/en/modules/zend.form.quick-start.html#zend-form-quick-start结合使用,因此您可能希望熟悉这两篇文章。
另外,我不知道你获得了多少流量但是如果你是一个低流量站点,那么有替代品可以很好地运行验证码,并且不会因为翻译文本的困难而吓跑用户。例如,用户可以解决数学问题,例如2加2。机器人将无法解决这个问题,或者你可以使用一个空白的隐藏字段,如果机器人填写它,那么用户就无法注册。
编辑:那么你最好的选择就是使用这些替代方案。他们使用99.9%的机器人,我使用它时从来没有问题,特别是在组合时。添加类似的内容<input type="hidden" value="" name="blah" />
然后使用
在php中测试表单if (strlen($_POST["blah"]) > 0)
{
die();
}
这应该能够阻止大多数机器人。如果您需要更多安全性,请添加类似的内容。
<p>Add two plus two</p>
<input type="text" name="check" />
和php
if ($_POST["check"] != 4)
{
die();
}
那应该适合你。