IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Autre alternative à $_SERVER['HTTP_REFERER']


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut Autre alternative à $_SERVER['HTTP_REFERER']
    Bonjour,

    Dans le cadre de mon site, si le visiteur se connecte sur une page qui requiert une inscription sur mon site, il sera redirigé vers le module de connection. Je voudrais lui permettre une fois qu'il s'est connecté de le rediriger vers la page qu'il voulait avant de s'être connecté

    En gros, je voudrais l'équivalent du bouton précédent du navigateur !

    Sur le net, on me dit tous "Utilise $_SERVER['HTTP_REFERER']" mais ce n'est pas fiable du tout...

    Existe t-il une autre méthode en php (pas de Javascript) pour faire cela ?

    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 305
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 305
    Points : 15 633
    Points
    15 633
    Par défaut
    Citation Envoyé par Aspic Voir le message
    Sur le net, on me dit tous "Utilise $_SERVER['HTTP_REFERER']" mais ce n'est pas fiable du tout...
    ce n'est pas fiable si c'est pour un test de sécurité. mais là c'est juste une aide à la navigation donc si un visiteur trafique la valeur de HTTP_REFERER ça ne posera pas de problème
    sinon une autre solution serait de mettre la page de redirection dans une variable de session

  3. #3
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Sauf que certains navigateurs ne renseigne pas cette variable donc si je la met dans une variable de session, elle risque de valoir ""

    Peut être puis je récupérer la variable de redirection autrement ?
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  4. #4
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    Ce que proposais mathieu, c'est de stocker l'adresse dans une variable de session avant redirection, et de la récupérer dans ton module de connexion

  5. #5
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Oui j'avais compris

    Mais comment la stocker sans utiliser $_SERVER['HTTP_REFERER'] ? puisqu'elle depens de l'endroit d'où vient le visiteur ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['redirect']=???
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  6. #6
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Citation Envoyé par Aspic Voir le message
    Oui j'avais compris

    Mais comment la stocker sans utiliser $_SERVER['HTTP_REFERER'] ? puisqu'elle depens de l'endroit d'où vient le visiteur ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['redirect']=???
    Eh bien dans la page demandée à laquelle l'utilisateur n'a normalement pas accès, tu peux récupérer l'URI avec $_SERVER['REQUEST_URI'].

    Donc faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['redirect']=$_SERVER['REQUEST_URI']
    puis rediriger vers le login...

  7. #7
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Ok merci !

    Par contre n'y a t-il pas moyen de récupérer le chemin relatif à partir de la page d'accueil et pas à partir de la racine du site ?

    Exemple : Je récupère /temp/projet/Mon_projet/lenders/profile.php
    Ma page d'accueil est dans /temp/projet/Mon_projet/index.php

    et je voudrais récupérer : /lenders/profile.php

    Je pense qu'en bidouillant avec un explode ca peut marcher mais n'y a t-il pas uen solution propre ?

    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  8. #8
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Je ne sais pas si la solution suivante vous a déjà été proposée :
    http://php.developpez.com/sources/?p...te#authenthttp

    Perso, j'utilise une iframe, un div ou tout simplement une popup pour afficher le formulaire. Puis j'actualise la page courante car en fait, l'url dans la barre d'adresse ne change pas lors de cette identification...
    De retour parmis vous après 10 ans!!

  9. #9
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Cette solution n'est pas envisageable car j'utilise les sessions pour mon module de connexion qui est déjà terminé
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  10. #10
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Le lien que j'ai donné concerne juste la partie du formulaire en fait.
    L'authentification http renseigne une login et un mot de passe, exactement comme un autre formulaire d'identification (à quelques détails près).
    Ainsi, tu n'as pas besoin d'utiliser une page spéciale pour l'identification.

    Mais bon, si ton formulaire est déjà terminé...
    De retour parmis vous après 10 ans!!

  11. #11
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 305
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 305
    Points : 15 633
    Points
    15 633
    Par défaut
    Citation Envoyé par Aspic Voir le message
    Ok merci !

    Par contre n'y a t-il pas moyen de récupérer le chemin relatif à partir de la page d'accueil et pas à partir de la racine du site ?

    Exemple : Je récupère /temp/projet/Mon_projet/lenders/profile.php
    Ma page d'accueil est dans /temp/projet/Mon_projet/index.php

    et je voudrais récupérer : /lenders/profile.php

    Je pense qu'en bidouillant avec un explode ca peut marcher mais n'y a t-il pas uen solution propre ?

    dans ce genre de cas je mets le chemin de l'application (/temp/projet/Mon_projet) dans la configuration
    par contre tu parlais de faire une redirection au début de ton problème, il n'y pas de problème de faire une redirection vers /temp/projet/Mon_projet/lenders/profile.php

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 39
    Points : 47
    Points
    47
    Par défaut
    Au passage, si t'utilises header('Location'), t'es censé mettre une url absolue, commençant par http et tout ça.

    Genre :
    header('Location: http://' . $_SERVER['SERVER_NAME'] . ...);

  13. #13
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Oui à la base c'était pour une redirection mais maintenant c'est dans un lien mais ca marche quand même !! Etonant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <a href="<?php echo($_SESSION['redirect']); ?>" class="menuhaut">Back</a>
    C'est normal que ca marche ?

    Sinon pour le header, pas d'accord tous mes chemins sont relatifs et ca marche aussi bien qu'avec des chemins absolus
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  14. #14
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Citation Envoyé par Aspic Voir le message
    Sinon pour le header, pas d'accord tous mes chemins sont relatifs et ca marche aussi bien qu'avec des chemins absolus
    A mon avis, ça dépend de la config du serveur...
    Les urls obsolues fonctionneront dans tous les cas.
    De retour parmis vous après 10 ans!!

  15. #15
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Oui sans doute. De toute manière j'ai un serveur dédié donc j'ai accès au php.ini

    Si quelqu'un sait ce qu'il faut modifier (si modification nécessaire), qu'il n'hésite pas

    Je mets cependant le thread en

    à tous
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  16. #16
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 305
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 305
    Points : 15 633
    Points
    15 633
    Par défaut
    Citation Envoyé par Sub0 Voir le message
    Citation Envoyé par Aspic Voir le message
    Sinon pour le header, pas d'accord tous mes chemins sont relatifs et ca marche aussi bien qu'avec des chemins absolus
    A mon avis, ça dépend de la config du serveur...
    Les urls obsolues fonctionneront dans tous les cas.
    le chemin fourni par l'entête "Location" est analysé par le navigateur. la RFC de HTTP 1.1 (et peut-être 1.0) demande un URL absolu mais la plupart des navigateurs gèrent les URL relatifs sans problème donc il y a de fortes chances que cette fonctionnalité ne change pas avant de longues années

  17. #17
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    merci pour la précision
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  18. #18
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Août 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2005
    Messages : 50
    Points : 45
    Points
    45
    Par défaut
    Salut,
    Moi j'ai utilisé $_SERVER['HTTP_REFERER'] sur mon serveur local (PC) avec XAMPP : PHP5 et Apache 2, et ça marche très bien. Mais sur le serveur de prod (Linux + Apache 2 + PHP5) ça ne marche pas. dois-je faire quelque chose pour activer $_SERVER['HTTP_REFERER'] sur mon serveur de prod ?
    en passant j'ai utilisé le même navigateur pour les deux serveur (Dev et Prod)

    Merci

  19. #19
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Intéressant si la provenance est à l'intérieur du même domaine.
    Mais, si la provenance doit être de l'extérieur genre domaine123.com/test3.php?

    Il est peut-être intéressant de pouvoir n'avoir que les visiteurs qui proviennent
    du site untel.

    Citation Envoyé par Eusebe Voir le message
    Eh bien dans la page demandée à laquelle l'utilisateur n'a normalement pas accès, tu peux récupérer l'URI avec $_SERVER['REQUEST_URI'].

    Donc faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['redirect']=$_SERVER['REQUEST_URI']
    puis rediriger vers le login...
    On oublie souvent la simplicité ou la base dans la vie: Maslow

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. alternative à la variable $_SERVER['HTTP_REFERER']
    Par jojo24.03 dans le forum Langage
    Réponses: 3
    Dernier message: 02/12/2010, 08h38
  2. problème avec le $_server['http_referer']
    Par lemok dans le forum Langage
    Réponses: 4
    Dernier message: 08/06/2007, 18h04
  3. Réponses: 7
    Dernier message: 27/05/2006, 01h23
  4. autre alternative au regexp
    Par osoumayaj dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 17/05/2006, 12h19
  5. [Sécurité] $_SERVER['HTTP_REFERER'] / Norton Internet Security
    Par nicolas.charlot dans le forum Langage
    Réponses: 1
    Dernier message: 13/10/2005, 11h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo