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
| |||
$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 |
| |||
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. |
| |||
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 |
| |||
Cita: 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. |
| |||
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 |
| |||
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. |
| |||
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 |
| |||
Cita: 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. |
| |||
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. |
| |||
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. |