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 :

$_SERVER['HTTP_REFERER'] ne s'affiche pas


Sujet :

Langage PHP

  1. #1
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Points : 267
    Points
    267
    Par défaut $_SERVER['HTTP_REFERER'] ne s'affiche pas
    Bonjour,

    J'ai plusieurs sites qui m'envoie des visiteurs.
    Comment faire pour connaître ces sites ? En fait en fonction de tel ou tel site, j'aimerai affiché tel ou tel pub.
    J'ai essayé de récupérer le referer via la variable globale $_SERVER['HTTP_REFERER'] mais cela ne fonctionne pas, la variable reste vide ?????

    Pouvez-vous m'aider s'il vous plait ?

    Merci beaucoup

    Cordialement

  2. #2
    Membre confirmé Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Points : 519
    Points
    519
    Par défaut
    Salut, voilà ce que dit l'API

    'HTTP_REFERER'
    L'adresse de la page (si elle existe) qui a conduit le client à la page courante. Cette valeur est affectée par le client, et tous les clients ne le font pas. Certains navigateurs permettent même de modifier la valeur de HTTP_REFERER, sous forme de fonctionnalité. En bref, ce n'est pas une valeur de confiance.

  3. #3
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Points : 267
    Points
    267
    Par défaut
    Merci pour le retour.
    Y a t'il une autre méthode pour récupérer le referer ?

  4. #4
    Membre actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Points : 228
    Points
    228
    Par défaut
    Tu as deux solutions qui s'offre à toi pour enregistrer les pages précédentes :

    - Utilisation de javascript et d'ajax pour récupérer l'historique des pages vu par tes visiteurs.

    - Demander aux sites partenaires qui t'envoie des clients de mettre une variable dans l'URL afin que tu saches d'où cela provient. Tu peux aussi enregistrer tes partenaires et leurs générer un id spécifique.

    J'espère que cela répond à ta question.

  5. #5
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Salut,

    généralement $_SERVER['HTTP_REFERER'] est le meilleur moyen pour connaître le site de provenance d'un client. Referer est une entête définit dans le protocole HTTP. Si tu n'as aucune valeur cela veut dire que tes clients tapent directement l'adresse sur leurs navigateurs. Tous les navigateurs moderne que je connais remplissent bien cette valeur.

    Citation Envoyé par akrogames Voir le message
    - Utilisation de javascript et d'ajax pour récupérer l'historique des pages vu par tes visiteurs.
    Pas possible.
    Citation Envoyé par akrogames Voir le message
    - Demander aux sites partenaires qui t'envoie des clients de mettre une variable dans l'URL afin que tu saches d'où cela provient. Tu peux aussi enregistrer tes partenaires et leurs générer un id spécifique.
    Non mais sérieux ? Tu vas demander aux moteurs de recherche aussi ?

  6. #6
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Points : 267
    Points
    267
    Par défaut
    Citation Envoyé par Thes32 Voir le message
    Salut,

    généralement $_SERVER['HTTP_REFERER'] est le meilleur moyen pour connaître le site de provenance d'un client. Referer est une entête définit dans le protocole HTTP. Si tu n'as aucune valeur cela veut dire que tes clients tapent directement l'adresse sur leurs navigateurs. Tous les navigateurs moderne que je connais remplissent bien cette valeur.


    Pas possible.

    Non mais sérieux ? Tu vas demander aux moteurs de recherche aussi ?
    Non je suis sur qu'il ne tape pas directement l'adresse, j'ai fait un test avec un partenaire.
    J'ai cliqué depuis son site, sous firefox avec firebug je vous bien le referer, mais quand j'essaye de l'afficher via $_SERVER['HTTP_REFERER'] il ne me renvoie rien, en cherchant sur le net j'ai vue que l'on pouvait activé/désactivé la variable session.referer_check , peut-être que mon problème viens de là, je vais regarder de côté là, on ne sait jamais

  7. #7
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    peux t-on voir comment tu récupères cette valeur ?

  8. #8
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Points : 267
    Points
    267
    Par défaut
    Citation Envoyé par Thes32 Voir le message
    peux t-on voir comment tu récupères cette valeur ?
    je fait test comme ceci:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $siteDistant = $_SERVER['HTTP_REFERER'];
    echo "site distant:".$siteDistant."<br>";

  9. #9
    Membre actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Points : 228
    Points
    228
    Par défaut
    comment cela pas possible Thes32 ?

    > Pas possible
    C'est totalement possible de récupérer l'historique d'un navigateur en Javascript et de le renvoyer en JSON à PHP. Pour preuve j'ai réalisé un web worker qui collecte des données et qui me permet de faire des statistiques.


    > Non mais sérieux ? Tu vas demander aux moteurs de recherche aussi ?
    Tu crois que les régie de pubs fonctionne comment ? Il y a un identifiant pour chacun de leurs annonceurs.

    Donc bon... J'ai déjà vu clairement le referer ne pas se remplir même si cela fait parti du protocole HTTP. Notamment IE.

    Ton code est correct omelhor. Tu veux récupérer l'historique de tes clients à N- combien ? Seulement le site d'avant ? donc N-1 ?

Discussions similaires

  1. $_SERVER['HTTP_REFERER'] ne fonctionne pas toujours
    Par ingeniomatique dans le forum Langage
    Réponses: 2
    Dernier message: 07/03/2010, 08h30
  2. [JTable] les noms des colonnes de s'affichent pas
    Par macben dans le forum Composants
    Réponses: 6
    Dernier message: 25/04/2008, 11h03
  3. Le résultat de Print ne s'affiche pas...
    Par Red Bull dans le forum Langage
    Réponses: 9
    Dernier message: 15/06/2006, 18h56
  4. Les classes ne s'affichent pas
    Par karl3i dans le forum MFC
    Réponses: 8
    Dernier message: 26/01/2004, 14h52
  5. [MFC] Ces fenêtres qui ne s'affichent pas..
    Par Davide dans le forum MFC
    Réponses: 3
    Dernier message: 19/11/2003, 11h30

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