php - Symfony 3.0.1 CSRF token 存在但无效

标签 php forms symfony

我在全新安装 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/

相关文章:

php - PHP PDO 语句可以接受表名或列名作为参数吗?

javascript - 在 AngularJS 中,当表单字段被禁用时,如何临时删除模型属性?

html - 在 .html (' ' 之后通过 jquery 在 div 中显示一个表单);

jquery - 动态设置字符串截断

php - 无需登录表单即可登录 phpmyadmin

javascript - 从 JSON 到 Actionscript

php - 需要更改 MySQL 数据库中的值,但 SQL 语言遇到问题

php - CodeIgniter 中的 SQL 查询

javascript - 限制允许选中的复选框数量

symfony - Symfony 2-验证具有NotBlank和Type约束的字段