我在全新安装 Symfony 3.0.1 时遇到了这个奇怪的问题。我使用包含 url 和标题的 Form PostType 生成了一个新的 CRUD Controller 。没什么特别的。
表单按预期呈现。它包含我的 url 字段和 title 字段。在表单内部,隐藏的输入字段 _token 也被渲染。
提交此表单时,我一直收到以下错误:
The CSRF token is invalid. Please try to resubmit the form.
所以 token 被添加到表单中,它包含一个值,我有一个常量 PHP session cookie 值,只是这个 token 无效。
我已经搜索了其他答案,但类似的问题都是由于缺少 _token 输入引起的。
这个问题在 Symfony 3.0.2/3.0.3 中也会出现。
最佳答案
在我的例子中,var/sessions/
文件夹不可写。默认为 var/sessions,在 config.yml 中设置。
session:
# http://symfony.com/doc/current/reference/configuration/framework.html#handler-id
handler_id: session.handler.native_file
save_path: "%kernel.root_dir%/../var/sessions/%kernel.environment%"
确保你有 var/folders
可写。
chmod 775 -R var/sessions/
chmod 775 -R var/log/
chmod 775 -R var/cache/
关于php - Symfony 3.0.1 CSRF token 存在但无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35208299/