PHP - HTTP_REFERER

 
Vista:

HTTP_REFERER

Publicado por maxlox (8 intervenciones) el 11/06/2007 18:12:52
Hola tengo un formulario que me envia a un email un a serie de datos me gustaria saber como conocer tambien desde la web que me han encontrado, he visto que se usa el HTTP_REFERER pero no se como ponerlo en el form para que me llegue en el email.

Despues tengo otra duda en las estadisticas de mi web si que me dice de que web llegan pero ademas las palabras que han puesto por ejemplo en google para encontrarme en el buscador, alguien sabe si eso tambien se puede conseguir en el form.

Gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:HTTP_REFERER

Publicado por Alejandro (63 intervenciones) el 12/06/2007 23:25:16
Hola Maxlox,
Voy por la primera parte de tu pregunta. Dado que lo segundo que preguntas salvo leyendo los log de los archivos no se me ocurre como.

Bueno un tema antes... Ten en cuenta que si utilizas por ejemplo
echo $_SERVER['HTTP_REFERER'];
Es muy posible que recibas el mensaje

Notice: Undefined index: HTTP_REFERER in D:\sitios\participacion-en-foros\lwp04.php on line 2

Cuando la pagina que contiene ese echo sea la que es llamada directamente o sea que nadie va desde otro sitio.

Asi que puedes recordar usar el @
echo @$_SERVER['HTTP_REFERER'];

Aunque lo mejor, dependiendo el caso, es que lo controles tipo

echo ( isset($_SERVER['HTTP_REFERER']))?$_SERVER['HTTP_REFERER']:"No existe referente";

etc, etc, etc...

Salu2 y Éxito
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:HTTP_REFERER

Publicado por maxlox (8 intervenciones) el 13/06/2007 10:02:14
Hola Alejandro he encontrado estas manera, no se si es correcta por lo que me comentas, te lo pongo:

Habría que poner en todos los archivos del sitio lo siguiente antes del tag <HTML>:

<?php include('referer.inc.php'); ?>

Y el archivo referer.inc.php contiene:

<?php
session_start();
if( !isset($_SESSION['ref']) )
{
$r = $_SERVER['HTTP_REFERER'];
$_SESSION['ref'] = $r;
}
?>

En el form poner como campo oculto:

<input type=hidden name=ref value="<?=$_SESSION['ref']?>">

y en algún punto, por ejemplo, en el archivo que procesa el form, destruir la sesión por si la misma PC vuelve a entrar (igual se autodestruye por timeout la sesión):

<?php

session_start();
$_SESSION = array();
if(isset($_COOKIE[session_name()]))
setcookie(session_name(), '', time()-42000, '/');
session_destroy();

?><HTML>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:HTTP_REFERER

Publicado por basnek (63 intervenciones) el 13/06/2007 10:27:21
Que complicación no?
Pero bueno fijate que la base de lo que te comentaba esta y es lo del $_SERVER['HTTP_REFERER'];
Despues obviamente formas hay miles y dependera de que desees hacer . Puntualmente y en tu caso era solo que te llegara en el form que te enviaran así que no veo que tengas que hacer tanto "lio" como en el script que me pasas.
Mmmm si sigues con dudas dime mas puntualmente que deseas hacer y lo vemos.
Un abrazo y Éxito
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:HTTP_REFERER

Publicado por maxlox (8 intervenciones) el 13/06/2007 18:48:29
Hola alejandro de nuevo, en principio ya lo he conseguido con la manera que te he dicho antes, pero como tu entiendes mas que yo no se si es la forma mas correcta pero de momento obtengo los datos que busco.

Te explico lo que busco: Tengo dos paginas web hechas una en html y otra en flash y ambas tiene un formulario de solicitud de informacion, necesito saber en que pagina web me han conocido.

Si quieres te lo envio a tu correo los ejemplos y los ves, de momento me dan los datos que necesito pero no se si siempre será así, o en algunas webs no funcionaran,...

Saludos y gracias alejandro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:HTTP_REFERER

Publicado por Diego Romero (1450 intervenciones) el 13/06/2007 20:34:27
Va un tip.
Usando la función estandar parse_url() te devuelve un array con todas las partes de una URL completa, por ejemplo:
si $_SERVER["HTTP_REFERER"] vale: http://lawebdelprogramador.com/news/mostrar_new.php?id=71&texto=PHP&n1=443996&n2=1&n3=1&n4=1&n5=1&n6=0&n7=0&n8=0&n9=0&n0=0
(es la URL que me aparece en la barra de direcciones ahora mismo)
ejecutando:

$p = parse_url($_SERVER["HTTP_REFERER"]);

$p vale:
array(4) {
["scheme"]=>
string(4) "http"
["host"]=>
string(23) "lawebdelprogramador.com"
["path"]=>
string(21) "/news/mostrar_new.php"
["query"]=> string(70) "id=71&texto=PHP&n1=443996&n2=1&n3=1&n4=1&n5=1&n6=0&n7=0&n8=0&n9=0&n0=0"
}

como verás, en la posición ["query"] del array tienes los parámetros de la URL de referer, tomando esa cadena se podría usar una expresión regular para extraer la cadena de búsqueda de los buscadores más populares. Por ejemplo, Google usa el parámetro "&q=" para esto.

Espero que les sea útil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:HTTP_REFERER

Publicado por basnek (63 intervenciones) el 13/06/2007 21:51:37
Vale envialo asi lo veo mas detalladamente.
Igualmente aclarame un punto eso de las dos paginas hechas y que necesitas saber en que pagina web me han conocido... te refieres a si llenaron el formulario desde la de flash o desde la de html ? Supongo que no sera eso porque eso con una variable lo solucionas pero bueno pasame los datos y lo vemos.
Espero el email
Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar