Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 会话超时并提交无关表单后,登录页面上的Symfony-CSRF字段为空_Php_Symfony1_Sfguard - Fatal编程技术网

Php 会话超时并提交无关表单后,登录页面上的Symfony-CSRF字段为空

Php 会话超时并提交无关表单后,登录页面上的Symfony-CSRF字段为空,php,symfony1,sfguard,Php,Symfony1,Sfguard,我正在使用Symfony 1.4和sfGuardPlugin。如果我坐在应用程序的某个页面上时会话超时,并且我尝试提交该页面上的表单,我将被重定向到登录页面(这很好,因为我的会话超时)。但它认为登录表单已经提交,并且我没有通过验证——用户名、密码和CSRF都不存在并且是必需的 为什么它认为我已经提交了登录表单,为什么CSRF是空的 现在作为一个用户,我会被完全卡住,因为我在登录页面上,而隐藏的CSRF字段是空的。即使我填写用户名和密码,我也无法通过验证,因为需要CSRF 我真的不知道该去哪里找。

我正在使用Symfony 1.4和sfGuardPlugin。如果我坐在应用程序的某个页面上时会话超时,并且我尝试提交该页面上的表单,我将被重定向到登录页面(这很好,因为我的会话超时)。但它认为登录表单已经提交,并且我没有通过验证——用户名、密码和CSRF都不存在并且是必需的

为什么它认为我已经提交了登录表单,为什么CSRF是空的

现在作为一个用户,我会被完全卡住,因为我在登录页面上,而隐藏的CSRF字段是空的。即使我填写用户名和密码,我也无法通过验证,因为需要CSRF

我真的不知道该去哪里找。我认为我的sfGuardPlugin配置相当标准。登录页面和CSRF保护通常工作正常

我正在使用的操作只是
$this->form->bind($request->getParameter($this->form->getName()),$request->getFiles($this->form->getName())

您可能会犯一些错误

  • 通过get和post处理表单。添加if($request->isMethod('post'))以处理仅通过post提交的表单
  • 未渲染模板中的隐藏字段。csrf场是隐藏的。使用 echo$form以呈现整个表单,或者$form->renderHiddenFields()

  • 你可能会犯一些错误

  • 通过get和post处理表单。添加if($request->isMethod('post'))以处理仅通过post提交的表单
  • 未渲染模板中的隐藏字段。csrf场是隐藏的。使用 echo$form以呈现整个表单,或者$form->renderHiddenFields()

  • 您考虑过使用sfDoctrineGuardPlugin吗?没有,因为我们使用的是推进。您考虑过使用sfDoctrineGuardPlugin吗?没有,因为我们使用的是推进。谢谢检查。对于#1,你指的是哪种形式?对于登录页面,我没有触及sfGuardPlugin代码,因此我认为这不是问题。对于我自己的操作,我有一个单独的操作来处理表单,因此如果不执行post,就无法执行该操作。对于#2,我肯定是在输出csrf字段,因为我在这两种表单中都使用$form->renderHiddenFields()。但有时csrf字段有一个空值,这是我无法理解的。谢谢检查。对于#1,你指的是哪种形式?对于登录页面,我没有触及sfGuardPlugin代码,因此我认为这不是问题。对于我自己的操作,我有一个单独的操作来处理表单,因此如果不执行post,就无法执行该操作。对于#2,我肯定是在输出csrf字段,因为我在这两种表单中都使用$form->renderHiddenFields()。但有时csrf字段有一个空值,这是我无法理解的。