我有一些麻烦让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 %}
答案 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([...]);
}
现在它工作得很好。