Matt Worked fine thank you very much
Ian > > I am trying to make sense of the Forward command. > > > > I am utilizing QuickForm in a join form > > > > The user fills in the form if it validates I want to forward to a > validate > > Action - just for separation. > > > > // Try to validate a form > > if ($form->validate()) { > > > > // Email and store in DB > > // Forward to the Verification controller > > self::_forward('validate'); > > First, Zend_Controller_Action::_forward() is not a static method. > Second, make sure you understand its signature: > > protected function _forward($action, $controller = null, $module = > null, array $params = array()); > > It works like this: > > * If only an $action is provided, it forwards to that action in the > current controller and module > * If an $action and a $controller are provided, it forwards to that > action and controller in the current module > * If an $action, $controller, and $module are provided, it forwards > to that action and controller in the provided module. > * $params may be provided at any time (pass null to any unneeded > parameter), and will be used to set parameters in the request > object. > > > > > } else { > > $string = $form->toHtml(); > > } > > > > Now in my validate action I want to forward again to the second stage of > the > > form > > > > // Show second stage > > public function validateAction() > > { > > // $post = Zend::registry('post'); > > // echo '<pre>'; print_r($post); echo '</pre>'; > > // echo '<pre>'; print_r($_POST); echo '</pre>'; > > > > // Forward to the Verification controller > > self::_forward('index', 'verification'); > > } > > > > Which involves verification > > > > However when I get here I have the output of all the previous pages. > > > > So my question is > > > > 1. How do I stop output from the action the script forwarded from. Is > this > > something to do with the Dispatch stuff - can I clear this before I > forward > > maybe? > > Use the response object's setBody() and appendBody() methods for > displaying content. So, instead of: > > echo '<pre>', print_r($post, 1, '</pre>'; > > You'd use: > > $this->_response->appendBody('<pre>' . print_r($post, 1) . '</pre>'); > > // or > $this->getResponse()->appendBody('<pre>' . print_r($post, 1) . > '</pre>'); > > Then, if you want a particular action to always overwrite any previous > content, use setBody(): > > $this->_response->setBody('Thanks for verifying your identity'); > > You could also do this just before your call to _forward(): > > $this->_response->setBody(''); > $this->_forward('index', 'verification'); > > > 2. What performance penalty do I suffer for letting the script compile > and > > then I clean? > > Not much -- it's all being handled as PHP arrays; you're simply > unsetting previous values. > > -- > Matthew Weier O'Phinney > PHP Developer | [EMAIL PROTECTED] > Zend - The PHP Company | http://www.zend.com/