大雪山 / no-captcha
1.0.1
2021-04-23 05:09 UTC
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-16 19:10:51 UTC
README
No Captcha Form Spam Filter是一个用于处理垃圾邮件机器人的PHP实用库,它采用不引人注目且用户友好的技术。
应用这些技术可以帮助您在网站中减少90%以上的垃圾邮件,并且用户不会因为侵入式的验证码或额外的字段而感到烦恼。
安装
您可以下载它并将其放置在第三方库文件夹中,但我们强烈建议您通过composer进行安装。
运行以下命令:
$ composer require daxslab/no-captcha
或添加以下内容到您的composer.json
文件的require
部分:
"daxslab/no-captcha": "~1.0"
NoCaptchaAntiSpam 类
NoCaptchaAntiSpam
类可用于声明保护规则、在表单中包含安全代码以及检查表单提交是否触发了任何规则验证。
要创建NoCaptchaAntiSpam
类的实例,可以使用create()
静态函数
use daxslab\nocaptcha\NoCaptchaAntiSpam;
use daxslab\nocaptcha\rules\CssHiddenFieldRule;
// Declare no captcha anti spam object with CSS based hidden field check
$noCaptchaAntiSpam = NoCaptchaAntiSpam::create([
'rules' => [
CssHiddenFieldRule::create([
// form input field name
'name' => 'css_hidden_field',
])
],
]);
包含表单元素
使用已创建的NoCaptchaAntiSpam
实例,您可以使用renderRules()
函数在表单中包含所需的元素
<form id="contactForm" method="post">
<div class="form-group">
<label for="contactName">Name</label>
<input class="form-control" name="contact_name" id="contactName" placeholder="Enter name">
</div>
<!-- Include rules form elements -->
<?= $noCaptchaAntiSpam->renderRules() ?>
<button type="submit" name="submit_button" class="btn btn-primary">Submit</button>
</form>
验证表单提交
使用从NoCaptchaAntiSpam
创建的实例中的checkSubmit()
函数,您可以检查在表单提交时是否触发了任何声明的规则
if ($_POST){
if ($noCaptchaAntiSpam->checkSubmit()){
echo 'Form submitted correctly';
} else {
echo 'Bot detected';
}
}
规则
规则类实现了不同的安全检查,包括
CssHiddenFieldRule
:使用CSS隐藏的诱饵字段JavascriptGeneratedHiddenFieldRule
:使用JavaScript生成的诱饵字段JavascriptFilledInputRule
:使用JavaScript填充的隐藏输入SessionTimeTrapRule
:使用会话存储变量的时间陷阱FormTimeTrapRule
:使用表单字段的时陷阱CookieCheckRule
:cookie验证
NoCaptchaAntiSpam
实例可以包含一个或多个规则。
随机字段名称
随机字段名称可以应用于额外的安全层,它们存储在PHP会话中,规则字段名称将改变,使得机器人难以识别。随机字段名称可以应用于单个规则或多个规则。
文档
有关扩展文档和示例,您可以将doc
文件夹放置在PHP支持的网络服务器后面。