Sto usando $_SERVER['HTTP_REFERER'];
per ottenere l'URL del referer. Funziona come previsto finché l'utente non fa clic su un'altra pagina e il referer passa all'ultima pagina.
Come memorizzo l'URL di riferimento originale?
Sto usando $_SERVER['HTTP_REFERER'];
per ottenere l'URL del referer. Funziona come previsto finché l'utente non fa clic su un'altra pagina e il referer passa all'ultima pagina.
Come memorizzo l'URL di riferimento originale?
Risposte:
Memorizzalo in un cookie (se è accettabile per la tua situazione) o in una variabile di sessione.
session_start();
if ( !isset( $_SESSION["origURL"] ) )
$_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];
http_referer
esiste, poiché spesso non lo è, il che potrebbe causare un errore "Indice non definito".
Come suggerito da Johnathan, potresti salvarlo in un cookie o in una sessione.
Il modo più semplice sarebbe usare una variabile Session.
session_start();
if(!isset($_SESSION['org_referer']))
{
$_SESSION['org_referer'] = $_SERVER['HTTP_REFERER'];
}
Inseriscilo nella parte superiore della pagina e sarai sempre in grado di accedere al primo referer da cui è stato diretto il visitatore del sito.
L'utilizzo dei cookie come repository della pagina di riferimento è molto meglio nella maggior parte dei casi, poiché i cookie manterranno il referrer fino alla chiusura del browser (e lo manterranno anche se la scheda del browser è chiusa), quindi nel caso in cui l'utente abbia lasciato la pagina aperta, diciamo prima dei fine settimana e dopo un paio di giorni, la tua sessione sarà probabilmente scaduta, ma i cookie saranno ancora lì.
Metti quel codice all'inizio di una pagina (prima di qualsiasi output html, poiché i cookie verranno impostati correttamente solo prima di qualsiasi echo / print):
if(!isset($_COOKIE['origin_ref']))
{
setcookie('origin_ref', $_SERVER['HTTP_REFERER']);
}
Quindi puoi accedervi in seguito:
$var = $_COOKIE['origin_ref'];
E oltre a quanto suggerito da @pcp sull'escape di $ _SERVER ['HTTP_REFERER'], quando si utilizza il cookie, potresti anche voler eseguire l'escape di $ _COOKIE ['origin_ref'] su ogni richiesta.
prova questo
(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
ma il post riguarda REFERER
la pagina web che ha portato a quella in questione.