Estou usando $_SERVER['HTTP_REFERER'];
para obter o URL de referência. Funciona conforme o esperado até que o usuário clique em outra página e o referenciador mude para a última página.
Como faço para armazenar o URL de referência original?
Estou usando $_SERVER['HTTP_REFERER'];
para obter o URL de referência. Funciona conforme o esperado até que o usuário clique em outra página e o referenciador mude para a última página.
Como faço para armazenar o URL de referência original?
Respostas:
Armazene-o em um cookie (se for aceitável para sua situação) ou em uma variável de sessão.
session_start();
if ( !isset( $_SESSION["origURL"] ) )
$_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];
http_referer
existe, o que geralmente não ocorre, o que poderia causar um erro de "Índice indefinido".
Como Johnathan sugeriu, você pode querer salvá-lo em um cookie ou em uma sessão.
A maneira mais fácil seria usar uma variável de sessão.
session_start();
if(!isset($_SESSION['org_referer']))
{
$_SESSION['org_referer'] = $_SERVER['HTTP_REFERER'];
}
Coloque isso no topo da página, e você sempre poderá acessar o primeiro referenciador pelo qual o visitante do site foi direcionado.
Usar o Cookie como repositório da página de referência é muito melhor na maioria dos casos, pois os cookies manterão o referenciador até que o navegador seja fechado (e o manterão mesmo se a guia do navegador for fechada), portanto, no caso de o usuário deixar a página aberta, digamos antes do fim de semana, e devolvido depois de alguns dias, sua sessão provavelmente expirará, mas os cookies ainda estarão lá.
Coloque esse código no início de uma página (antes de qualquer saída html, pois os cookies serão configurados corretamente apenas antes de qualquer eco / impressão):
if(!isset($_COOKIE['origin_ref']))
{
setcookie('origin_ref', $_SERVER['HTTP_REFERER']);
}
Então você pode acessá-lo mais tarde:
$var = $_COOKIE['origin_ref'];
E além do que @pcp sugeriu sobre o escape de $ _SERVER ['HTTP_REFERER'], ao usar o cookie, você também pode querer escapar $ _COOKIE ['origin_ref'] em cada solicitação.
tente isso
(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
mas a postagem é sobre a REFERER
página da web que levou à questão em questão.