ed.sukharev / re-captcha-validator
Google reCaptcha 表单类型和验证器,适用于 Symfony 表单。
1.2.0
2019-05-20 23:12 UTC
Requires
- php: >=5.3.3
- ext-json: *
- symfony/form: ~2.3|~3.0
- symfony/validator: ~2.3|~3.0
Requires (Dev)
- phpunit/phpunit: ~4.0
- squizlabs/php_codesniffer: ~2.0
This package is auto-updated.
Last update: 2024-09-21 20:48:54 UTC
README
这是一个非常轻量且简单的 reCAPTCHA 组件,适用于 Symfony Forms 组件(无需 Symfony 框架),它不是一个 Bundle,您可以重新配置所有组件,满足您的需求。
关于 Google reCAPTCHA API v2 的完整文档,您可以在这里找到:这里。
安装
您可以使用 Composer 安装此包。运行以下命令:
composer require ed.sukharev/re-captcha-validator
使用示例
添加公钥和私钥,并将 reCAPTCHA 表单类型配置为服务。之后,您可以将 reCAPTCHA 类型添加到您的表单中
<?php namespace AcmeBundle\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolverInterface; class ContactType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('message', 'textarea') /** In type add your form alias **/ ->add('captcha', 'ds_re_captcha', array('mapped' => false)) ->add('send', 'submit'); } public function setDefaultOptions(OptionsResolverInterface $resolver) { $resolver->setDefaults(array( /** This option is require, because reCaptcha api.js add extra field "g-recaptcha-response" to form **/ 'allow_extra_fields' => true, )); } }
下一步,您需要将小部件渲染到您的视图中。以下是以 Twig 模板引擎为例,但其他引擎也应该是类似的。
您可以在表单中内联它
{% extends 'AcmeBundle::layout.html.twig' %} {% form_theme form _self %} {% block ds_re_captcha_widget %} {% spaceless %} <div class="g-recaptcha" data-sitekey="{{ public_key }}"></div> <script src="{{ js_api_url }}?hl={{ lang }}" async defer></script> {% endspaceless %} {% endblock ds_re_captcha_widget %} {% block content %} {{ form(your_form) }} {% endblock %}
或者将其作为一个单独的文件发送(例如 ds_recaptcha_field.html.twig
)
{% block ds_re_captcha_widget %} {% spaceless %} <div class="g-recaptcha" data-sitekey="{{ public_key }}"></div> <script src="{{ js_api_url }}?hl={{ lang }}" async defer></script> {% endspaceless %} {% endblock ds_re_captcha_widget %}
并在 twig 中包含它
{% extends 'AcmeBundle::layout.html.twig' %} {% form_theme form 'ds_recaptcha_field.html.twig' %} {% block content %} {{ form(your_form) }} {% endblock %}
版权
版权(c)2019 Eduard Sukharev sukharev.eh@gmail.com。版权(c)2015 Ilya Pokamestov dario_swain@yahoo.com。