Estoy usando $_SERVER['HTTP_REFERER'];
para obtener la URL de referencia. Funciona como se esperaba hasta que el usuario hace clic en otra página y el remitente cambia a la última página.
¿Cómo almaceno la URL de referencia original?
Estoy usando $_SERVER['HTTP_REFERER'];
para obtener la URL de referencia. Funciona como se esperaba hasta que el usuario hace clic en otra página y el remitente cambia a la última página.
¿Cómo almaceno la URL de referencia original?
Respuestas:
Guárdelo en una cookie (si es aceptable para su situación) o en una variable de sesión.
session_start();
if ( !isset( $_SESSION["origURL"] ) )
$_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];
http_referer
existe, ya que a menudo no lo hace, lo que podría causar un error de "Índice no definido".
Como sugirió Johnathan, querrá guardarlo en una cookie o en una sesión.
La forma más sencilla sería utilizar una variable de sesión.
session_start();
if(!isset($_SESSION['org_referer']))
{
$_SESSION['org_referer'] = $_SERVER['HTTP_REFERER'];
}
Ponlo en la parte superior de la página, y siempre podrás acceder al primer referente por el que se dirigió el visitante del sitio.
Usar Cookie como un repositorio de la página de referencia es mucho mejor en la mayoría de los casos, ya que las cookies mantendrán la referencia hasta que se cierre el navegador (y la mantendrán incluso si la pestaña del navegador está cerrada), así que en caso de que el usuario dejara la página abierta, digamos antes de los fines de semana y después de un par de días, su sesión probablemente caducará, pero las cookies seguirán allí.
Coloque ese código al comienzo de una página (antes de cualquier salida html, ya que las cookies se configurarán correctamente solo antes de cualquier eco / impresión):
if(!isset($_COOKIE['origin_ref']))
{
setcookie('origin_ref', $_SERVER['HTTP_REFERER']);
}
Entonces puedes acceder a él más tarde:
$var = $_COOKIE['origin_ref'];
Y además de lo que @pcp sugirió sobre cómo escapar de $ _SERVER ['HTTP_REFERER'], cuando use cookies, también puede querer escapar de $ _COOKIE ['origin_ref'] en cada solicitud.
prueba esto
(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
pero la publicación trata de REFERER
la página web que condujo a la en cuestión.