Foros del Web » Programando para Internet » PHP »

$HTTP_REFERER no devuelve nada

Estas en el tema de $HTTP_REFERER no devuelve nada en el foro de PHP en Foros del Web. Tengo este codigo: <? $ref =$_SERVER["HTTP_REFERER"]; echo $ref ; exit(); ?> Pero no me devuelve nada el referer Hay alguna funcion alternativa para obtener la ...
  #1 (permalink)  
Antiguo 24/08/2006, 08:43
 
Fecha de Ingreso: agosto-2003
Mensajes: 398
Antigüedad: 20 años, 7 meses
Puntos: 0
$HTTP_REFERER no devuelve nada

Tengo este codigo:

<?
$ref =$_SERVER["HTTP_REFERER"];
echo $ref ;
exit();
?>
Pero no me devuelve nada el referer

Hay alguna funcion alternativa para obtener la url presedente o referer?

Un Saludo y gracias
  #2 (permalink)  
Antiguo 24/08/2006, 08:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ese código no te va a devolver nada si no llegas al script que lo ejecuta desde otro .. Es decir .. si tu ejecutas el código "aislado" directamente en tu navegador no esperes que te dé la última página visitada (eso sería ver entre el "historial" del navegador y no sé si por javascript lo obtendrías ... )

Por otro lado esa variable de servidor no es confiable, ni segura ni en todos los casos te va a devolver el valor esperado. Date cuenta que esa variable es el "navegador" (cliente) el que entrega ese dato al servidor HTTP para que PHP la pueda leer bajo esa variable de servidor.

Si el "cliente" no quiere darla: por ejemplo si abres ventanas con javascript . en la ventana que abres no se suele dar esa información .. o tu conexión pasa por un proxy o similar (antivirus con funciondes de firewall o equivalentes) .. suelen "bloquear" esa información .. cuando no la "adulteran" (le ponen cualquier cosa).

Por ende .. no uses esa variable para validaciones .. a lo sumo para "registros" si es que la obtienes y sino . .nada.

No sé que quieres hacer exactamente . .pero hay otros métodos en la mayoría de casos para solventar el problema que "creo" tienes; me refiero a usar sesiones por ejemplo (donde te tomas el URL donde -estas- .. pasas a tu scritp siguiente (redireccionando, con un link .. etc) y donde -llegas- lees ese valor del URL donde estabas que te almacenastes en una variable de sesión .. O algo más simple sólo con una variable de sesión tipo "flag" si lo que quieres simplemente es saber que llegas de una página de tu sitio a otra página (script) de tu sitio.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 24/08/2006, 09:05
 
Fecha de Ingreso: agosto-2003
Mensajes: 398
Antigüedad: 20 años, 7 meses
Puntos: 0
Si, si eso lo se, pero no me devolvia nada, y he dado por casualidad con esta solución:

<?php
$referer = getenv("HTTP_REFERER");
echo $referer ;
exit();
?>

Mucho mejor que la anterior ya que siempre me devuelve la url precedente

Un Saludo y Gracias Cluster, eres de gran ayuda
  #4 (permalink)  
Antiguo 24/08/2006, 09:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Taurus427 Ver Mensaje
Si, si eso lo se, pero no me devolvia nada, y he dado por casualidad con esta solución:

<?php
$referer = getenv("HTTP_REFERER");
echo $referer ;
exit();
?>

Mucho mejor que la anterior ya que siempre me devuelve la url precedente

Un Saludo y Gracias Cluster, eres de gran ayuda
Tu como tienes instalado PHP .. como "módulo de apache" o como un CGI?

Que versión de PHP usas? ..

Acceder a $_SERVER['HTTP_REFERER'] debería funcionar igual que getenv() (salvo que uses PHP como CGI según creo).

Por otro lado ... uses getenv() o $_SERVER['HTTP_REFERER'] .. tienes los mismos problemas que indiqué .. NO TE FIES de dicho dato .. NO LO USES para validaciones!!!.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 24/08/2006, 09:46
 
Fecha de Ingreso: agosto-2003
Mensajes: 398
Antigüedad: 20 años, 7 meses
Puntos: 0
no cluster, no es para validaciones, sino para un sistema de estadistica, que coge la url y la contabiliza.

No debe de haber problema no?
He probado con esa funcion desde varias webs y siempre me ha devuelto el dato.
Un Saludo
  #6 (permalink)  
Antiguo 24/08/2006, 09:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No se trata de probarlo desde "varias webs" sino desde -otras conexiones- .. otros navegadores y configuraciones de estos.

El dato está ahí .. pero lo dicho .. no es para fiarse 100% de él. (Intenta usar un proxy con capacidades de alterar cabeceras HTTP y veras como peudes indicar como "página referida" cualquier otra cosa .. Yo he visto en log's de mis servidores "publicidad" de cierto servicios de proxys y cosas así .. ahora no los tengo a mano para indicarte cual .. ).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 24/08/2006, 10:09
 
Fecha de Ingreso: agosto-2003
Mensajes: 398
Antigüedad: 20 años, 7 meses
Puntos: 0
Y no existe ningun afuncion alternativa?
Yo he probado desde IE y Mozilla y me devuelve sin problemas, solo quiero coger por ejemplo si viene de google yahoo, etc... y depenidnedo desde donde venga me lo contabiliza.

Espero me puedas aclarar esto.
Un Saludo
  #8 (permalink)  
Antiguo 24/08/2006, 10:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Taurus427 Ver Mensaje
Y no existe ningun afuncion alternativa?
Yo he probado desde IE y Mozilla y me devuelve sin problemas, solo quiero coger por ejemplo si viene de google yahoo, etc... y depenidnedo desde donde venga me lo contabiliza.

Espero me puedas aclarar esto.
Un Saludo
No hay otra alternativa ..

Yo sólo te comento el "posible margen de error" que puedes obtener.

Veamos un ejemplo práctico:

Usa un servicio de proxy "anonimo" como este por ejemplo:
http://proxify.com/

* Activa/descativa la opcipon de "HTTP REFERE" ..

* Visita tu sitio/script concreto que registra tu HTTP_REFERER ...

* Observa los resultados.

Ahora imagina toda la gente que usa proxy's (empresas, instituciones) que configuran su conexión para "no entregar" esa información del HTTP_REFERER. Ese será tu "margen de error" en tus estadísticas ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 24/08/2006, 10:28
 
Fecha de Ingreso: agosto-2003
Mensajes: 398
Antigüedad: 20 años, 7 meses
Puntos: 0
Simplemente que habra veces que no me devolvera el referer al estar bajo uin proxy no?

He entendido eso?

SI es asi no me importa, tampococ quiero que sea 100% efectivo, hombre seria lo suyo pero claro esta que hay servidores anonimos y cosas asi para no entregar informacion personal.

Un Saludo y espero me puedas aclarar.
  #10 (permalink)  
Antiguo 24/08/2006, 10:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Así es .. en esos casos .. o no se entrega ninguna información a intentar ver el "HTTP_REFERER" o bien se te entrega otra cosa (que hasta no puede ser un "URL" .. una frase .. cualquir cosa).

Eso ya lo veras cuando tu sistema empieze a trabajar y recivas visitas.

Sólo te "aviso" por si ves algo "extraño" en tus log's que hagas en el apartado del registro de tu "HTTP_REFERER".

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 24/08/2006, 11:00
 
Fecha de Ingreso: agosto-2003
Mensajes: 398
Antigüedad: 20 años, 7 meses
Puntos: 0
Si, si no me devuelve referer simplemente no me contabiliza nada. Es como si fuera un anonimo.

Un Saludo y Gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:30.