Analyser $HTTP_REFERER

WRInaute discret
Bonjour,

Voilà ce que je cherche à faire :
Dans un script d'album photo je souhaiterais mettre un lien de retour vers la fiche correspondante automatiquement.
L'utilisation du javascript:history.go(-1) est assez limité puisque si le visiteur est arrivé sur cette page grâce à Google en cliquant sur le lien il va quitter le site.

J'ai donc pensé à utiliser $HTTP_REFERER et essayer de voir si $HTTP_REFERER contient le nom de domaine de mon site. Si oui affichage du lien :
Code:
<a href="<?php echo $HTTP_REFERER; ?>">Page précédente</a>
Si non : affichage d'un lien vers le sommaire des fiches.

J'ai donc essayé le code suivant mais ça ne marche pas. J'utilise peut-être une mauvaise fonction je sais pas... :?

Code:
<?php
$mystring = '$HTTP_REFERER';
$findme  = 'bond-fr';
$pos = strpos($mystring, $findme);

if ($pos === false) {
   echo "La chaîne '$findme' n'a pas été trouvée dans la chaîne '$mystring'";
} else {
   echo "La chaîne '$findme' a été trouvée dans la chaîne '$mystring'";
   echo " et à la position $pos";
}
  
// On peut chercher le caractère, en ignorant tout avant une position
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, pas 0
?>
(j'ai trouvé le code sur php.net, là il n'affiche pas l'adresse mais juste si une partie du nom de domaine a été trouvé dans la page précédente)

Merci d'avance pour vos solutions !

PS : Erreur générée:
La chaîne 'bond-fr' n'a pas été trouvée dans la chaîne '$HTTP_REFERER'
 
WRInaute discret
En fait j'ai trouvé mieux avec la fonction eregi() :roll:

Code:
<?php

$string = $HTTP_REFERER;
if (eregi('jamesbond-fr', $string)) {
   echo "<a href=\"$HTTP_REFERER\">Page précédente</a>";
}
else
{
echo("<a href=\"http://www.jamesbond-fr.com/filmographie\">Revenir aux filmographies</a>");
}
?>

Mon erreur venait du fait surtout des ' qui entourait mon $HTTP_REFERER.

EDIT : Oui ça marche parfaitement :p (une chose bien utile je trouve car on rencontre souvent des sites avec des retours en arrière agaçant à cause du Javascript qui renvoi sur le site précédent :? )
 
WRInaute impliqué
Je te conseille quand même l´utilisation de $_SERVER['HTTP_REFERER'] plutot, car c´est la bonne syntaxe qui suivra les prochaines versions certainement...
 
Discussions similaires
Haut