我生气了。在我的本地环境中,我的所有表单都能完美运行。
在我的prod环境中,我的表单中断了,Symfony2抛出了这个错误:
无效的CSRF令牌。再次发送表格
好的,我在Google上搜索并找到了很多解决方案,但没有任何效果。
我在每个表单上手动打印{{ form_row(form._token) }}
,但错误仍然存在。
在我的parameters.yml上我也手动设置域。
我必须做什么?
在我的所有表单中,我都执行handleRequest():
$form->handleRequest($request);
if ($form->isValid()) {
表格示例:
<div class="container-fluid">
<div class="row">
{{ form_start(form, { 'style': 'horizontal', 'attr': {'autocomplete': 'off'} }) }}
{{ form_errors(form) }}
<div class="col-md-6">
<h4>{{ 'profile.edit.socialNetworks'|trans({}, 'user') }}</h4>
<div class="row">
<div class="col-lg-12">
<div class="col-lg-12">
{{ form_row(form.twitter) }}
{{ form_row(form.youtube) }}
{{ form_row(form.website, { 'help_text': 'profile.edit.field.help.website'|trans({}, 'user') }) }}
</div>
</div>
</div>
<h4>{{ 'profile.edit.myGameaccounts'|trans({}, 'user') }}</h4>
<div class="row">
<div class="col-lg-12">
<div class="col-lg-12">
<div class="form-group">
{{ form_label(form.userSteamTrade) }}
<div class="col-lg-10">
{{ form_widget(form.userSteamTrade) }}
<span class="help-block"><a href="#" id="steamTrade">{{ 'profile.edit.field.help.steamTradeLink'|trans({}, 'user') }}</a></span>
</div>
</div>
{{ form_row(form.userSteam) }}
{{ form_row(form.userLol, { 'label': 'profile.edit.field.lolSum'|trans({}, 'user') }) }}
{{ form_row(form.userXbox) }}
{{ form_row(form.userPs4) }}
{{ form_row(form.userBattlenet, { 'help_text': 'profile.edit.field.help.bnet'|trans({}, 'user') }) }}
</div>
</div>
</div>
<h4>{{ 'profile.edit.save'|trans({}, 'user') }}</h4>
<div class="row">
<div class="col-lg-12">
<div class="col-lg-12">
{{ form_row(form.current_password, { 'help_text': 'profile.edit.field.help.password'|trans({}, 'user') }) }}
{{ form_row(form.actions) }}
{{ form_row(form._token) }}
</div>
</div>
</div>
</div>
{{ form_end(form, {'render_rest': false}) }}
</div>
</div>
答案 0 :(得分:0)
我明白了。
参数.yml
中的domain
变量存在问题
我将domain
设置为默认值~
,然后就可以了。
parameters.yml之前:
domain: subdomain.domain.net
parameters.yml之后:
domain: ~
forceDomain: subdomain.domain.net # This var is mine not default by Symfony2 to force some routes to execute just on this subdomain
非常感谢!你摇滚!