【问题标题】:Symfony 3 - The CSRF token is invalid. Please try to resubmit the formSymfony 3 - CSRF 令牌无效。请尝试重新提交表单
【发布时间】:2017-08-17 05:00:42
【问题描述】:

首先,我已经尝试找到与我的问题相关的另一个主题,因为它已经存在很多:p。

但我不明白为什么 Symfony 一直告诉我...:

The CSRF token is invalid. Please try to resubmit the form

我使用的是常规格式,奇怪的是它可以在另一台计算机上运行,​​但不能在这台计算机上运行(文件相同,除了缓存/会话/日志文件)。

  • 我同时使用 {{ form_rest(form) }} 和 {{ form_end(form) }} twig 变量。我增加了 php.ini 的 ma​​x_input_vars 和 upload_max_filesize 属性。
  • 我的数据库是最新的。
  • 隐藏的 _token 输入显示在 html 中。
  • 我清除了我的应用和浏览器缓存。
  • 由于这是一个本地网站,我刚刚授予我所有文件夹/文件的 777 权限..

编辑:如果我替换 (app/config/config.yml) :

save_path:   "%kernel.root_dir%/../var/sessions/%kernel.environment%"

与

save_path: ~

它有效.. 但我不知道这样做的后果是什么?会话是基于 php.ini 文件存储的,对吗?那么我可以使用这个设置而不是以前的设置而没有任何问题吗?

否则,我完全不知道会导致错误的原因。

感谢您的帮助! :)

【问题讨论】:

  • 仅供其他人使用 - 我已经在我的服务器上升级了 PHP 并在 php-fpm 上重新加载,然后在之前正常工作时出现了这个错误。我必须完全重新启动 php-fpm,而不仅仅是重新加载,但随后这个错误就消失了:/

标签: csrf symfony


【解决方案1】:
save_path:   "%kernel.root_dir%/../var/sessions/%kernel.environment%"

应该没问题。只需确保您的 var/sessions 文件夹存在并且是可写的

mkdir -p var/sessions
chmod 755 var/sessions

var/cache 和 var/logs 也必须如此。

【讨论】:

  • 我已经尝试过了,这真的很奇怪,因为它可以在我的办公室计算机上运行,​​但不能在家里运行(两者都在 mac 上运行 vagrant (scotchbox),我只是不太确定我的 vagrant 配置是两台机器上都一样,但我真的不知道它是如何相关的:x)。当我回到家时,我仍然会尝试使用你的命令行,谢谢 ;)
  • 好...正如您所做的那样,请检查哪些用户也拥有这些文件夹。
  • 在你的 Vagrant 盒子上,使用共享文件夹之外的路径,你也应该没问题。
【解决方案2】:

我有同样的铅

第一次我使用的是使用 apache 的 xampp(工作正常 - 无需更改)

第二次我在 ubuntu 上使用 nginx(这里是 pb)

我删除了sessions/cache ->nothing

我改变了 "save_path: ~ " 并且它的工作

【讨论】:

  • 你在哪里删除了会话/缓存?
猜你喜欢
  • 2020-07-27
  • 2014-06-20
  • 2018-01-15
  • 1970-01-01
  • 2014-05-09
  • 2017-08-01
  • 2020-01-31
  • 2020-05-19
  • 2018-03-01
相关资源
最近更新 更多