mashkin / recaptcha-serviceprovider
提供谷歌 ReCaptcha API 作为 Silex ServiceProvider
v2.0
2017-07-23 23:51 UTC
This package is not auto-updated.
Last update: 2024-09-28 17:12:44 UTC
README
Silex ServiceProvider 集成谷歌 ReCaptcha 服务
安装
通过 Composer
将此包添加到您的 composer.json
文件并执行 composer update
{
...
"require": {
...
"mashkin/recaptcha-serviceprovider": "dev-master"
}
}
或者简单地执行 composer require "mashkin/recaptcha-serviceprovider" "dev-master"
。
使用方法
作为 ServiceProvider
注册 RecaptchaServiceProvider
并提供您的配置
$app->register(new Mashkin\RecaptchaServiceProvider(), array(
'recaptcha.sitekey' => 'YOUR_SITE_KEY',
'recaptcha.secret' => 'YOUR_SITE_SECRET'
));
// Optional:
// Set language parameter that will be passed to ReCaptcha (default: en)
$app['recaptcha.language'] = 'de';
// Set stream context for API call (file_get_contents()) (default: null)
$app['recaptcha.streamContext'] = ...;
在 Application::boot()
上,$app['recaptcha.language']
将被设置为 $app['locale']
。
ServiceProvider 提供了一个 Mashkin\Recaptcha
的实例作为 $app['recaptcha']
。
按照以下说明使用。
独立使用
// Do your configuration
// Required:
$siteKey = 'YOUR_SITE_KEY';
$siteSecret = 'YOUR_SITE_SECRET';
// Optional:
$language = 'de';
$streamContext = ...; // Passed to file_get_contents()
// Create an instance of Mashkin\Recaptcha
$recaptcha = new Recaptcha($siteKey, $siteSecret, $language, $streamContext)
// Get ReCpatcha widget code
// Get target element
echo $recaptcha->getHtmlElement();
// Get JavaScript
echo $recaptcha->getHtmlScript();
// Verify Captcha response
if (isset($_POST['g-recaptcha-response'])) {
$result = $recaptcha->checkResponse($_POST['g-recaptcha-response']);
if ($result['success']) {
echo "Success";
} else {
echo "Some errors occured: ";
echo implode(', ', $result['error-codes']);
die();
}
} else {
die('No captcha response submitted');
}