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');
}