Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/12/2011, 15h14   #1
Nouveau Membre du Club
 
Inscription : février 2009
Messages : 261
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 261
Points : 30
Points : 30
Par défaut Connaître le nom du controleur et de l'action d'où vient l'utilisateur

Bonjour, est-il possible de savoir d'où vient l'utilisateur (controleur et action) ?

Je demande ça parce que si l'utilisateur demande une action où il faut être authentifié et qu'il ne l'est pas, je le redirige automatiquement vers un formulaire d'authentification et une fois fait, je veux le redirigé là où il voulait se rendre précédemment.

J'ai regardé la documentation avec l'objet requête mais il n'y a rien, il y a seulement les méthodes getActionName() et getControllerName() mais elles renvoient les valeurs de l'action et du contrôleur actuel soit celui de l'authentification..

Merci de votre aide.
absot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 17h00   #2
Membre actif
 
Homme Ahmed Benlahsen
Ingenieur BI - Dev Web Senior
Inscription : décembre 2009
Messages : 118
Détails du profil
Informations personnelles :
Nom : Homme Ahmed Benlahsen
Localisation : Maroc

Informations professionnelles :
Activité : Ingenieur BI - Dev Web Senior

Informations forums :
Inscription : décembre 2009
Messages : 118
Points : 157
Points : 157
Envoyer un message via MSN à abenlahsen Envoyer un message via Skype™ à abenlahsen
@absot non je pense pas que Zend permet cela, je pense même qu'aucun framework le permet !

Par contre PHP possède une variable $_SERVER['HTTP_REFERER'] mais je ne pense pas que ça va t'aider!

Pour ton cas, il faut :
- Dans ton action qui contrôle l'authenticité, et au moment de la redirection vers la page de connexion tu dois ajouter un paramètre dans ton url
Quelque chose comme ça :
Code :
$this->_redirect('/authentication/connect/return/' . urlencode($this->view->url()))
- Dans le contrôleur qui fait la connexion, par exemple "authentication", si les accès sont correctes tu redirige l'internaute vers l'url que tu as reçu en paramètre "return".
Quelque chose comme ça :
Code :
$this->_redirect(urldecode($this->getRequest()->getParam('return')));
Et voilà.

Enjoy !
abenlahsen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 19h25   #3
Nouveau Membre du Club
 
Inscription : février 2009
Messages : 261
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 261
Points : 30
Points : 30
Je suis idiot de ne pas y avoir pensé!

Effectivement, au moment où je vérifie si l'utilisateur est authentifié et que ce n'est pas le cas, je rajoute dans ma redirection vers l'authentification, la valeur du controleur et de l'action en cours soit:
Code :
1
2
 
$this->_redirect('authentification/connecter/controleur/'.$this->getRequest()->getNameControlleur.'/action/'.$this->getRequest()->getActionName());
Et je récupère avec:
Code :
1
2
3
 
$controleur = $this->_getParam('controleur', 0);
$action = $this->_getParam('action', 0);
absot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 19h59   #4
Membre actif
 
Homme Ahmed Benlahsen
Ingenieur BI - Dev Web Senior
Inscription : décembre 2009
Messages : 118
Détails du profil
Informations personnelles :
Nom : Homme Ahmed Benlahsen
Localisation : Maroc

Informations professionnelles :
Activité : Ingenieur BI - Dev Web Senior

Informations forums :
Inscription : décembre 2009
Messages : 118
Points : 157
Points : 157
Envoyer un message via MSN à abenlahsen Envoyer un message via Skype™ à abenlahsen
Cool bon courage
abenlahsen est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h52.


 
 
 
 
Partenaires

Hébergement Web