2010-08-02 4 views
0

Je ne suis pas sûr que l'appel de setRedirect à partir de l'objet ressource soit le meilleur moyen. mais je me demande pourquoi cela ne semble pas faire quoi que ce soit. J'ai cela dans un plugin contrôleur preDispatchZend_Controller_Request :: setRedirect() ne semble pas fonctionner?

function preDispatch(Zend_Controller_Request_Abstract $req) { 
    ... 
    if (!$acl->isAllowed($role, $resource, $privilege)) { 
     ... 
     $res = $this->_response; 
     $res->setRedirect('/error/?error-handler=unauthorized', 403); 
    } 
} 

si u préfèrent le code entier, obtenir @pastebin

+0

votre code postal. –

Répondre

4

setRedirect() n'arrête pas le dispatchloop d'exécuter. Pour effectuer la redirection, vous devez envoyer les en-têtes et quitter le processus.

$res->setRedirect('/error/?error-handler=unauthorized', 403); 
$res->sendHeaders(); 
exit(); 

Une meilleure façon serait d'utiliser le redirecteur Zend_Controller_Action_HelperBroker::getStaticHelper('Redirector')->gotoUrl()

Questions connexes