fruitcakestudio / recaptcha
reCAPTCHA 库
v0.3.1
2017-04-05 13:26 UTC
README
这是一个用于实现 reCAPTCHA (https://developers.google.com/recaptcha/) 的包
安装
使用 composer 安装此包
composer require fruitcakestudio/recaptcha
配置
您可以通过传递来自 API 的 SiteKey 和 Secret 创建一个新的实例。您可以在 https://www.google.com/recaptcha/admin 获取这些信息
use FruitcakeStudio\ReCaptcha\ReCaptcha; $captcha = new ReCaptcha($siteKey, $secret, 'en');
小部件使用
要在表单上显示 reCAPTCHA,请使用类来渲染脚本标签和小部件。
<?php echo $captcha->getScript() ?> <form method="POST"> <?php echo $captcha->getWidget() ?> <input type="submit" value="Submit" /> </form>
有关更多选项,请参阅 https://developers.google.com/recaptcha/docs/display
验证响应
在提交后,使用类来验证响应。您会返回 true 或 false。您可以通过 $captcha->getErrors() 作为数组访问错误代码,或获取可读性消息
if ($captcha->verify($_POST["g-recaptcha-response"], $_SERVER["REMOTE_ADDR"])) { echo "OK!"; } else { echo "FAILED! " . $captcha->getErrorMessage(); }
注意:错误消息并不总是存在。
您还可以通过使用 verifyGlobals() 让类发现 POST 响应和远程 IP
if ($captcha->verifyGlobals()) { echo "OK!"; }
如果您使用的是 Symfony HttpFoundation,您可以使用请求对象而不是全局变量。
if ($captcha->verifyRequest($request)) { echo "OK!"; } // Or by setting the request before $captcha->setRequest($request); if ($captcha->verifyRequest()) { echo "OK!"; }
请参阅 https://developers.google.com/recaptcha/docs/verify 上的文档
Laravel 集成
从 0.3.x 版本开始,支持使用独立包进行 Laravel 集成:https://github.com/fruitcakestudio/laravel-recaptcha
类是相同的,只是配置包名从 'recaptcha' 改为 'laravel-recaptcha'。