2009-11-11 10 views
1

J'ai un lien sur la page principale qui est seulement accessible si elles sont connectées. Cependant, si ce lien est cliqué, je veux montrer un message d'erreur personnalisé sur la page de connexion (un custom 'Message.auth').Obtenir un referer de auth dans cakePHP

Je veux dire (code pseudo)

if (referer == '/users/reserve'){ 
    Message.auth = 'Please log in to reserve tickets'; 
} 
else { 
    Message.auth = 'Please log in to access that page'; 
} 

Où puis-je mettre ce morceau de code?

Répondre

1

Pourvu que vous avez auth messages flash étant sortie dans la vue de connexion, cela devrait fonctionner:

// login action of users_controller.ctp 
if ($this->Session->check('Auth.redirect') 
&& $this->Session->read('Auth.redirect') == '/users/reserve') { 
    $this->Session->write('Message.auth', 'Please log in to reserve tickets'); 
} 
+0

j'ai eu en fait d'utiliser un preg_match sur la redirection, car il y a généralement des choses après la réserve, mais c'était la clé. Merci. – helloandre

+0

aussi, j'ai eu quelques problèmes étranges avec/tmp/cache lors de l'utilisation de la Session-> écrire. Il est plus facile d'utiliser 'setflash (" ", 'default', array(), 'auth')' pour cela. – helloandre

1

Pour obtenir un referer, vous pouvez appeler $ this-> referer() pour obtenir l'URL de référence, puis passer cette valeur à votre vue.

voir: referer