使用gregwar验证码的chrome上的错误代码值

时间:2014-09-03 09:59:54

标签: google-chrome symfony captcha symfony-2.3

我有一些麻烦让gregwar验证码在Chrome上运行。   我在symphony 2.3上有一个web应用程序并使用gregwar验证码(" dev-master")。

我在表格上放了验证码。   它在IE和Firefox上运行得很好。   但是对于Chrome,在表单验证之后,我总是得到一个" Bad Code Value"错误。   事实上当我在Gregwar\CaptchaBundle\Validator\CaptchaValidator.php函数上查看compare时,我的$expectedCode确实与code不同。

为什么它既可以在Firefox上运行,也可以在Chrome上运行,但在Chrome中却没有?

您可以在此处测试页面:http://www.nokachi-lyon.fr/contacts

有关信息,这是我对Gregwar Captcha的实施:

config.yml我有:

gregwar_captcha:
  width: 150
  height: 35
  length: 5
  distortion: false
  invalid_message: "My error message"

Form我有:

public function buildForm(FormBuilderInterface $builder, array $options){
  $builder->add('myField','text')
          ->add('captcha', 'captcha');
}

FormView我有:

{% form_theme form with ['::captcha.html.twig','::formError.html.twig'] %}
<form action="{{ path('club_contacts') }}" method="post" {{ form_enctype(form) }}>
    ...
    {{ form_widget(form.captcha) }}
    ...
</form>

captcha.html.twig我有:

{% block captcha_widget %}
 <p>My Message :
    {{ form_widget(form) }}
    <img src="{{ captcha_code }}" title="captcha" width="{{ captcha_width }}" height="{{ captcha_height }}" />
  </p>
{% endblock %}

1 个答案:

答案 0 :(得分:0)

我最终设法让它发挥作用! 我不确定为什么它现在有用但是这里有修复。

Controler中,我曾经有类似的东西:

public function contactsAction(Request $request){
    [...]
    if ($request->isMethod('POST')) {
        $form->bind($request);
        [...]
    }
    return $this->render([...]);
} 

我将其更改为以下内容:

public function contactsAction(Request $request){
    [...]
    $form->bind($request);
    if ($request->isMethod('POST')) {
        [...]
    }
    return $this->render([...]);
} 

现在它工作得很好。