views:

407

answers:

2

Hi

I'm having issues with trying to use Zend_Form_SubForm and sessions. My controller is in essance acting a wizard showing different subforms depending on the stage of the wizard. Using the example I am planning on storing the forms in a session namespace.

My controller looks like this.

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;
}

However this is causing the application session to crash out with

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

Any idea why this is having issues with the Zend Session??

thanks.

A: 

It's very weird, the only place I see that a message like that is sent is on lines 435 to 446 of Zend/Session.php.

Are you trying to run that code through a unit test?, check that there isn't any headers sent before initializing the Session.

Chris
A: 

Make sure there are no spaces, new lines or any other characters sent before the session start. Especially if you have include and your <?php is prepended with space or starts on 2nd line of the file.

michal kralik