每次尝试提交表单时,我都会收到此错误消息:
CSRF 令牌无效。请尝试重新提交表格
我的表单代码是这样的:
<form novalidate action="{{path('signup_index')}}" method="post" {{form_enctype(form)}} role="form" class="form-horizontal">
<div class="form-group">
{{ form_label(form.email, 'Email', {'label_attr': {'class': 'col-md-1 control-label'}}) }}
{{ form_widget(form.email, {'attr': {'class': 'col-md-2'}}) }}
{{ form_errors(form.email) }}
</div>
<div class="form-group">
{{ form_label(form.nickname, 'Nickname', {'label_attr': {'class': 'col-md-1 control-label'}}) }}
{{ form_widget(form.nickname, {'attr':{'class': 'col-md-2'}}) }}
{{ form_errors(form.nickname, {'attr': {'class': 'col-md-3'}}) }}
</div>
<div class="form-group">
{{ form_label(form.password, 'password', {'label_attr': {'class': 'col-md-1 control-label'}}) }}
{{ form_widget(form.password, {'attr': {'class': 'col-md-2'}}) }}
{{ form_errors(form.password, {'attr': {'class': 'col-md-3'}}) }}
</div>
<div class="form-group">
{{ form_label(form.password_repeat, 'Repeat password', {'label_attr': {'class': 'col-md-1 control-label'}}) }}
{{ form_widget(form.password_repeat, {'attr':{'class': 'col-md-2'}}) }}
{{ form_errors(form.password_repeat, {'attr': {'class': 'col-md-3'}}) }}
</div>
<div class="form-group">
<div class="col-md-1 control-label">
<input type="submit" value="submit">
</div>
</div>
</form>
有任何想法吗?
您需要添加_token
以你的形式,即
{{ form_row(form._token) }}
截至目前,您的表单缺少 CSRF 令牌字段。如果您使用 twig 表单函数来渲染表单,例如form(form)
这将自动为您渲染 CSRF 令牌字段,但您的代码显示您正在使用原始 HTML 渲染表单,例如<form></form>
,因此您必须手动渲染该字段。
或者,只需添加{{ form_rest(form) }}
在表单的结束标记之前。
根据文档
这将渲染尚未为给定渲染的所有字段
形式。最好将其始终放在表单中的某个位置
因为它会为您呈现隐藏字段并创建您忘记的任何字段
渲染得更明显(因为它会为您渲染该字段)。
form_rest(视图,变量) http://symfony.com/doc/current/reference/forms/twig_reference.html#form-rest-view-variables
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)