我已经实现了前端表单,它使未注册的用户能够在我的网站上发布。
一切正常,我唯一的问题是验证码的实施。
我发现的所有验证码解决方案都需要将一些外部文件放入表单操作中。但我的表格有这样的语法:
<form action="">
我不知道该怎么办?如果我将文件放在操作字段中,我将无法再添加帖子。我如何将验证码的验证码放在与表单相同的文件中?还是有更好的解决方案?
非常感谢!
我已经实现了前端表单,它使未注册的用户能够在我的网站上发布。
一切正常,我唯一的问题是验证码的实施。
我发现的所有验证码解决方案都需要将一些外部文件放入表单操作中。但我的表格有这样的语法:
<form action="">
我不知道该怎么办?如果我将文件放在操作字段中,我将无法再添加帖子。我如何将验证码的验证码放在与表单相同的文件中?还是有更好的解决方案?
非常感谢!
如果你很了解 php,请使用 Zend 框架。我将它用于我所有的验证码。查看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结合使用,因此您可能想熟悉两篇文章。
此外,我不知道您获得了多少流量,但如果您是一个低流量网站,那么验证码的替代品效果很好,并且不会因翻译文本的困难而吓跑用户。例如,用户可以解决像二加二这样的数学问题。机器人无法解决这个问题,或者你可以使用一个空白的隐藏字段,如果机器人填写了它,那么用户就无法注册。
编辑:那么你最好的选择是使用这些替代品。它们适用于 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();
}
那应该对你有用。