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 :

Capteur de provenance


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Mai 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 11
    Par défaut Capteur de provenance
    Bonjour,

    Je voudrais savoir comment faire pour capter d'où le visiteur vient, par exemple, je veux que la page secure.php ne s'ouvre que si le visiteur vient d'index.php, sinon un message d'erreur s'affiche et fait retourner l'utilisateur à la page index.php.

    Merci !

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Février 2003
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2003
    Messages : 28
    Par défaut
    Bonjour,

    A priori tu as plusieurs possibilités :
    • d'abord passer une variable en $_GET/$_POST pour avoir la provenance mais c'est pas très fiable si l'utilisateur peut tricher
    • sinon et beaucoup plus fiable en utilisant le echo $_SERVER['HTTP_REFERER'] qui te donne des infos directement sur la provenance de l'utilisateur


    Perso, je te conseille d'utiliser le HTTP_REFERER très bien documenté sur internet !

    @+
    Mickael

  3. #3
    Membre régulier
    Inscrit en
    Mai 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 11
    Par défaut
    Oui je sais que HTTP_REFERER est la meilleure façon mais le problème c'est dans quel syntaxe php la mettre. (Débutant)

  4. #4
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Février 2003
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2003
    Messages : 28
    Par défaut
    Alors tu vas juste avoir un soucis avec le fait que ce soit l'index.php :
    le HTTP_REFERER risque de te renvoyer la chaîne : http://tonsite/

    Donc tu as plusieurs possibilités tu casses ta chaîne pour récupérer le nom du fichier et si c'est '' ou 'index.php' alors tu affiches sinon tu rediriges avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header (' Location : index.php ');
    par exemple ou sinon tu recherches avec ereg une certaine chaîne de caractère comme index.php (ici tu retrouves le problème du début).

    Pour analyser le retour de HTTP_REFERER tu peux faire un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $array = parse_url($_SERVER['HTTP_REFERER']);
    Le chemin du fichier est dans Donc dans ton cas soit / soit /index.php soit autre chose...

  5. #5
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 706
    Par défaut
    Citation Envoyé par DjTechno Voir le message
    sinon et beaucoup plus fiable en utilisant le echo $_SERVER['HTTP_REFERER'] qui te donne des infos directement sur la provenance de l'utilisateur
    l'information HTTP_REFERER peut aussi être modifiée par le visiteur donc ce n'est pas sécurisé

    une autre technique serait par exemple de définir une variable de session dans la page index.php et de la lire dans la page secure.php
    index.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    session_start(); // mise en place des sessions
     
    $_SESSION['passeParIndex'] = TRUE;
    secure.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    session_start(); // mise en place des sessions
     
    if (!isset($_SESSION['passeParIndex'])) { // si le marqueur n'existe pas
        header('Location: index.php'); // redirection vers la page index.php
    }

Discussions similaires

  1. [vb.net]recupération de donnée provenant d'un fichier xml
    Par moust dans le forum Windows Forms
    Réponses: 24
    Dernier message: 04/07/2005, 10h55
  2. [debutant][XML] sauvegarde de donnée provenant de textbox
    Par moust dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 28/06/2005, 16h22
  3. [Débutant] reconnaitre la provenance des ActionEvent
    Par lipao17 dans le forum AWT/Swing
    Réponses: 17
    Dernier message: 30/04/2005, 14h13
  4. Réponses: 13
    Dernier message: 24/02/2005, 17h45
  5. [TRI] tri d'une list provenant de LabelValueBean
    Par Canou dans le forum Struts 1
    Réponses: 6
    Dernier message: 20/09/2004, 15h55

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