[PHP] Obtenir l'URL précédente

Obtenir l'URL précédente [PHP] - PHP - Programmation

Marsh Posté le 18-10-2019 à 14:10:58    

Bonjour,
 
Je vous explique mon problème:
J'ai une interface protégée par mot de passe. Si quelqu'un tente d'aller sur une des pages protégées alors il est redirigé vers la page d'identification avec un header("Location: URL_LOGIN" );
 
Ce que je souhaite faire c'est récupérer l'adresse demandée à l'origine par le visiteur afin qu'une fois identifié, je le redirige vers l'adresse qu'il avait demandée.
Seule problème c'est qu'avec un "header('Location');" la variable $_SERVER['HTTP_REFERER'] ne contient rien.
 
Bref, c'est peut être tout bête, mais comment faire ça?
 
Merci!

Reply

Marsh Posté le 18-10-2019 à 14:10:58   

Reply

Marsh Posté le 18-10-2019 à 14:19:32    

Je l'ai fait dans mon appli Astres (cf signature). En début de chaque page protégée, j'ai mis une petite fonction. Celle-ci vérifie si l'utilisateur est connecté. Si oui, elle ne fait rien de plus. Si ce n'est pas le cas, elle stock dans la variable de session $_SESSION['PreviousUrl'] l'url courante puis redirige l'utilisateur sur la page d'authentification. A noter que si l'url est celle de la page de connexion, je ne la stocke pas.
 
Quand l'utilisateur s'authentifie avec succès, avant de créer sa vraie session, je vérifie si $_SESSION['PreviousUrl'] existe et n'est pas vide. Si c'est le cas, je stocke son contenu dans une variable de mon script. Je finalise l'authentification avec la création de la vraie session puis, si ma variable d'url précédente n'est pas vide, je le redirige sur l'url.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 18-10-2019 à 14:26:01    

rufo> J'avais commencé à faire ça après mon message en me demandant si c'était de cette façon qu'il fallait procéder, tu me confirmes que c'est le cas, parfait!
 
Et merci en général pour tes réponses, ça fait plusieurs fois que je pose des questions et tu interviens toujours avec des réponses claires et précises. :)

Reply

Marsh Posté le 18-10-2019 à 15:19:21    

Merci. En même temps, quand on l'a déjà fait et que ça marche bien (cette solution, je l'ai mise en place dans mon outil depuis 2006), autant en faire profiter aux autres. Je suis très partageur. Mes domaines de prédilection sont les outils et méthodologie ainsi que la gestion de la connaissance (via un wiki). Ca fait plus de 15 ans que je fais ça ;)
De mon côté, quand je viens ici, j'apprécie que d'autres puissent faire de même en m'apportant une aide efficace. Au final, tout le monde y gagne. C'est du donnant-donnant. On m'aide, j'aide.
 
Pour info, le HTTP_REFERER est géré différemment depuis Firefox 59.x. En fonction de comment Firefox est configuré, il peut ne rien envoyer et donc, cette variable peut être vide. Mieux vaut l'éviter. J'ai d'ailleurs dû mettre à jour mon Astres récemment.
 
@+


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed