表单向导丢失了我的数据

时间:2011-05-19 10:14:57

标签: forms cakephp wizard

您好,感谢您的时间! 在尝试实现表单向导时遇到了一些问题。 使用xdebug显示所有提交的数据都丢失了,这意味着:
$ this-> data,$ _POST和$ params ['data'] / ['form']都是空的。 似乎蛋糕正在进行某种重定向/调度,并且操作被调用两次。当我在beforeFilter()方法中设置断点时,我可以看到所有数据都已正确填充。 在其他讨论中有一些建议,这可能是由布局中的无效链接引起的,但使用空布局并没有改变任何东西。 我还删除了Auth组件,RequestHandler,Helpers,看看是否发生了什么......没什么。 问题是,我对Cake很新,没有进一步的想法在哪里看。 目前我得到这个警告:

Warning (512): Step validation: daten is not a valid step. [ROOT/plugins/wizard/controllers/components/wizard.php, line 271]
Code | Context

return $this->controller->autoRender ? $this->controller->render($this->_currentStep) : true;
} else {
trigger_error(sprintf(__('Step validation: %s is not a valid step.', true), $step), E_USER_WARNING);

$step   =   "daten"

WizardComponent::process() - ROOT/plugins/wizard/controllers/components/wizard.php, line 271
SignupsController::wizard() - ROOT/plugins/bookings/controllers/signups_controller.php, line 18
Dispatcher::_invoke() - CORE/cake/dispatcher.php, line 204
Dispatcher::dispatch() - CORE/cake/dispatcher.php, line 171
[main] - ROOT/webroot/index.php, line 83

不要认为这有多大帮助,导致$ step数组也丢失了。 任何想法深深感激! :)

1 个答案:

答案 0 :(得分:0)

问题是会话已过期且信息丢失,系统会一直跟踪进度和数据。在核心配置的安全性首选项中将会话设置为更长。但这仍然不能阻止错误。修复替换:

trigger_error(sprintf(__('Step validation: %s is not a valid step.', true), $step), E_USER_WARNING);

为:

$this->reset();

这会将用户发送回表单向导的第一部分。您将丢失所有用户数据但会在第一个地方到期的会话中发生,或者如果有人试图通过使用表单跳转到尚未访问的表单,它也将重置。这可能是一个很好的安全措施,或者只是简单烦人。

无论如何,这是我的解决方案,可能会有更好的解决方案。