2009-09-15 6 views
0

J'ai des problèmes avec l'utilisation de Zend_Form_SubForm et des sessions. Mon contrôleur est en action d'agir un assistant montrant différents sous-formulaires en fonction de l'étape de l'assistant. En utilisant l'exemple, je prévois de stocker les formulaires dans un espace de noms de session.zend session exception sur zend_session :: commence par des formulaires

Mon contrôleur ressemble à ceci.

include 'mylib/Form/addTaskWizardForm.php'; 

class AddtaskController extends Zend_Controller_Action{ 

private $config = null; 
private $log = null; 
private $subFormSession = null; 


/** 
* This function is called and initialises the global variables to this object 
* which is the configuration details and the logger to write to the log file. 
*/ 
public function init(){ 

    $this->config = Zend_Registry::getInstance()->get('config'); 
    $this->log = Zend_Registry::getInstance()->get('log'); 

    //set layout 
    $this->_helper->layout->setLayout('no-sidemenus'); 

    //we need to get the subforms and 
    $wizardForms = new addTaskWizardForm();   

    $this->subFormSession = new Zend_Session_Namespace('addTaskWizardForms'); 

    if(!isset($this->subFormSession->subforms)){ 
     $this->subFormSession->subforms = $wizardForms; 
    } 

} 

/** 
* The Landing page controller for the site. 
*/ 
public function indexAction(){ 

    $form = $this->subFormSession->subforms->getSubForm('start'); 


    $this->view->form = $form; 
} 

Cependant cela crée la session d'application de tomber en panne avec

Uncaught exception 'Zend_Session_Exception' message « Zend_Session :: start()

Toute idée pourquoi cela a problèmes avec la session Zend ??

merci.

+0

Quel est le message d'exception complète? –

Répondre

0

Assurez-vous qu'il n'y a pas d'espaces, de nouvelles lignes ou d'autres caractères envoyés avant le début de la session. Surtout si vous avez inclus et votre <?php est ajouté avec de l'espace ou commence sur la deuxième ligne du fichier.

+0

Je ne peux pas lier votre réponse avec le code de la question. Encore une fois où changer? – Vikas

0

C'est très étrange, le seul endroit où je vois qu'un message comme celui-là est envoyé est sur les lignes 435 à 446 de Zend/Session.php.

Essayez-vous d'exécuter ce code via un test unitaire?, Vérifiez qu'aucun en-tête n'a été envoyé avant d'initialiser la session.

Questions connexes