Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
J'ai développé mon application dans le répertoire C:\wamp\www\testZendPg. Je n'ai aucun problème et je souhaite descendre toute l'application dans le répertoire C:\wamp\www\. Et là, le comportement de l'application est complètement différent ! Et bien sur plus ne rien fonctionne !
fichier AuthControlleur.php
function logoutAction() { Zend_Auth::getInstance()->clearIdentity(); $this->_redirect('auth/login'); }
Avant :
si je tapais "http://127.0.0.1/testZendPg/auth/logout", j'étais redirigé correctement vers "http://127.0.0.1/testZendPg/auth/login" comme codé ci dessus
Maintenant, si je tape "http://127.0.0.1/auth/logout" (donc sans le répertoire testZendPg) je suis redirigé comme ceci http://127.0.0.1/auth/auth/login (au lieu de http://127.0.0.1/auth/login ) ! Je me retrouve avec deux fois le controleur 'auth'
Si je vais sur http://127.0.0.1/auth/login et que je tape le mot de passe, je suis ensuite redirigé vers http://127.0.0.1/auth/espaceclient/afterAuthRedirect (toujours auth en trop)
Dans les pages protégées, je teste d'abord si j'ai une identification effectué .. si non, alors je redirige vers http://127.0.0.1/auth/login et la c'est le pire : il me redirige vers http://127.0.0.1/espaceclient/auth/auth … auth/login
Si vous avez une idée pour me sortir cette #@\*$, je vous en serais reconnaissant.
Cordialement
Ami
Hors ligne
Bonjour,
le fonctionnement de $this->_redirect est assez compliqué (il ajoute les baseUrl quand il faut, ajoute le protocole devant,...).
A mon avis il vaut mieux définir le baseUrl à "/", ça devrait mieux marcher...
Philippe
Hors ligne
Pour tous ceux que ca intéresse, voici le code avant
function logoutAction() { Zend_Auth::getInstance()->clearIdentity(); $this->_redirect( 'auth/login'); }
et voici le code corrigé qui fonctionne a tous les coups :
function logoutAction() { Zend_Auth::getInstance()->clearIdentity(); $this->_redirect( $this->_request->getBaseUrl() . '/auth/login'); }
Tout est rentré dans l'ordre.
Il ne reste plus qu'a traquer tous les "$this->_redirect" dans mes différents fichier *.php et ajouter $this->_request->getBaseUrl().
Merci Philippe.
Cordialement
Ami
Hors ligne
Problème : la correction fonctionne dans http://127.0.0.1 mais le site dans http://127.0.0.1/testZendPg ne fonctionne plus ( même problème que le premier post ! )
Là, je ne comprend rien au problème !
Ami
Hors ligne
Avant de tout changer, est-ce que tu peux essayer de mettre un
$controller->setBaseUrl("/");
dans ton index.php
J'ai tendance à penser que ça peut marcher...
Philippe
Hors ligne
Non, ca ne fonctionne pas mieux !
Voici mon code dans index.php
if ( getcwd() == 'C:\wamp\www' ) { $controller->setBaseUrl('/'); } else if ( getcwd() == 'C:\wamp\www\testZendPg' ) { $controller->setBaseUrl('/testZendPg/'); }
Hors ligne