fruitcakestudio/recaptcha

v0.3.1 2017-04-05 13:26 UTC

This package is auto-updated.

Last update: 2024-09-05 18:39:24 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'。