2011-05-19 1 views
0

Bonjour et merci pour votre temps! En essayant d'implémenter l'Assistant Formulaire, j'ai rencontré quelques problèmes. L'utilisation de xdebug a montré que toutes les données soumises étaient perdues, ce qui signifie:
$ this-> data, $ _POST et $ params ['data']/['form'] sont tous vides. Il semble que le gâteau fasse une sorte de redirection/expédition et les actions sont appelées deux fois. Lorsque je définis un point d'arrêt dans la méthode beforeFilter(), je peux voir toutes les données correctement remplies. Il y avait quelques suggestions dans d'autres discussions que cela pourrait être provoqué par des liens invalides dans la mise en page, mais en utilisant une mise en page vide n'a rien changé. J'ai également enlevé le composant Auth, le RequestHandler, Helpers pour voir si quelque chose se passe ... rien. Le problème est, je suis tout à fait nouveau à Gâteau et n'ai pas d'autres idées où regarder. Actuellement Im obtenir cet avertissement:Form Wizard perd mes données

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 

ne pense pas que cela aide beaucoup, parce que le tableau de l'étape de $ est également perdu. Une idée profondément appréciée! :)

Répondre

0

Le problème est que la session a expiré et les informations sont perdues que le système continue de suivre la progression et les données. Définissez votre session pour être plus long dans les préférences de sécurité dans la configuration de base. Cela n'empêche toujours pas l'erreur. Pour remplacer fixe:

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

à:

$this->reset(); 

Cela envoie l'utilisateur à la première partie de l'assistant de formulaire. Vous aurez perdu toutes les données de l'utilisateur, mais cela est arrivé à la fin de la session ou si quelqu'un essaie de passer à un formulaire qui n'a pas encore été accédé en utilisant le formulaire, il sera également réinitialisé. Cela pourrait être une bonne mesure de sécurité ou tout simplement ennuyeux.

De toute façon, c'est ma solution, il pourrait y en avoir de meilleurs.

+0

Merci pour votre réponse Bruce! Comme je ne pouvais pas trouver comment résoudre le problème moi-même, j'ai décidé d'écrire mon propre assistant de formulaire, mais j'espère que cela aidera quelqu'un d'autre. – HerrKuchen