j'utilise $_SERVER['HTTP_REFERER'];
pour obtenir l'URL du référent. Cela fonctionne comme prévu jusqu'à ce que l'utilisateur clique sur une autre page et que le référent passe à la dernière page.
Comment stocker l'URL de référence d'origine?
j'utilise $_SERVER['HTTP_REFERER'];
pour obtenir l'URL du référent. Cela fonctionne comme prévu jusqu'à ce que l'utilisateur clique sur une autre page et que le référent passe à la dernière page.
Comment stocker l'URL de référence d'origine?
Réponses:
Stockez-le soit dans un cookie (si cela convient à votre situation), soit dans une variable de session.
session_start();
if ( !isset( $_SESSION["origURL"] ) )
$_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];
http_referer
existe, car ce n'est souvent pas le cas, ce qui pourrait provoquer une erreur "Index non défini".
Comme Johnathan l'a suggéré, vous voudrez soit l'enregistrer dans un cookie ou une session.
Le moyen le plus simple serait d'utiliser une variable de session.
session_start();
if(!isset($_SESSION['org_referer']))
{
$_SESSION['org_referer'] = $_SERVER['HTTP_REFERER'];
}
Mettez cela en haut de la page, et vous pourrez toujours accéder au premier référent par lequel le visiteur du site a été dirigé.
L'utilisation de Cookie comme référentiel de page de référence est bien meilleure dans la plupart des cas, car les cookies conserveront le référent jusqu'à ce que le navigateur soit fermé (et le conserveront même si l'onglet du navigateur est fermé), donc si l'utilisateur a laissé la page ouverte, disons avant le week-end, et y revenir après quelques jours, votre session sera probablement expirée, mais les cookies seront toujours là.
Mettez ce code au début d'une page (avant toute sortie html, car les cookies ne seront correctement définis qu'avant tout écho / impression):
if(!isset($_COOKIE['origin_ref']))
{
setcookie('origin_ref', $_SERVER['HTTP_REFERER']);
}
Ensuite, vous pourrez y accéder plus tard:
$var = $_COOKIE['origin_ref'];
Et en plus de ce que @pcp a suggéré d'échapper à $ _SERVER ['HTTP_REFERER'], lorsque vous utilisez un cookie, vous pouvez également vouloir échapper $ _COOKIE ['origin_ref'] à chaque requête.
essaye ça
(isset ($_SERVER['HTTP_CLIENT_IP']) ?
$_SERVER['HTTP_CLIENT_IP'] :
(isset ($_SERVER['HTTP_X_FORWARDED_FOR']) ?
$_SERVER['HTTP_X_FORWARDED_FOR'] :
$_SERVER['REMOTE_ADDR']
)
)
IP ADDRESS
mais le message concerneREFERER
la page Web qui a conduit à celle en question.