Foros del Web » Programando para Internet » PHP »

Referer en un Formulario

Estas en el tema de Referer en un Formulario en el foro de PHP en Foros del Web. Hola tengo un formulario que me funciona perfectamente ahora le he añadido un referer para saber con que palabras en la web me ha encontrado ...
  #1 (permalink)  
Antiguo 27/07/2010, 11:24
 
Fecha de Ingreso: julio-2010
Mensajes: 4
Antigüedad: 14 años, 3 meses
Puntos: 0
Referer en un Formulario

Hola tengo un formulario que me funciona perfectamente ahora le he añadido un referer para saber con que palabras en la web me ha encontrado y no me funciona, en otros dominios el referer me va perfectamente.

Si alguien me facilita un email para que se lo pueda mirar , lo agradeceré.

Gracias
  #2 (permalink)  
Antiguo 27/07/2010, 11:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Referer en un Formulario

un mail??

pero si se trata de un foro público, ¿porque hay que facilitarte un mail?

el referer no siempre está disponible, en algunas configuraciones del servidor, o bien, por la configuración de los navegadores hay ocasiones en las que no hay tal valor...

a mi también me ha pasado, pero no hay solución con PHP... es algo que le corresponde enviar al navegador, y no hay código que arregle dicho comportamiento... que, aunque eventual... sucede!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 27/07/2010, 13:05
 
Fecha de Ingreso: julio-2010
Mensajes: 4
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Referer en un Formulario

Hola era por no poner todo el codigo,no problem, lo pongo mas abajo, haber a mi en cuatro dominios de u servidor me va perfectamente usando $HTTP_POST_VARS, aqui en este servidor no me deja usar esa funcion o bien no la he configurado bien:

$HTTP_POST_VARS (Si alguien sabe como puedo usarlo, porque me da error cuando lo uso en este otro servidor)

y

uso en este

$_POST

Eso del navegador con este codigo que uso, en los otros dominios va perfectamente, nunca falla, aqui es un formulario diferente y me devuelve como Referer la misma Web, en cambio si pruebo el formulario antiguo me funciona bien. Es algo que fallo de PHP y no se en que.

Lo he probado con diferentes navegadores y como referer siempre me devuelve la Web

Haber aqui va el codigo, en la cabecera de todas las paginas tengo esto:

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

El codigo del referer.inc.php es:

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


El codigo del formulario que no me devuelve el valor que espero sino como referer me devuelve este valor www.miweb.com

Parte del Codigo Form:


<?php

ini_set('display_errors','0');
ini_set('display_startup_errors','0');
error_reporting (0);

if ( !$_GET['mail'] )

{

?>

<div class="message">
<div id="alert"></div>
</div>
<img src="images/contacto.png" width="122" height="205" style="float:right" />
<div class="contact-us">
<form action="contacto.php?mail=1" method="post" id="contactForm">
<input type=hidden name=ref value="<?=$_SESSION['ref']?>"> <p><span class="form-col1">Nombre y apellidos:<span class="red">*</span></span>
<input name="cname" id="cname"/>
</p>
<p><span class="form-col1">E-mail:<span class="red">*</span></span>
<input name="cemail" id="email" />
</p>
<p><span class="form-col1">Teléfono de contacto:<span class="red">*</span></span>
<input name="cphone" id="cphone" />
</p>

<p>Comentarios:<br />
<textarea name="cdebthtype" cols="20" rows="2" id="cdebthtype"></textarea>
</p>




<p>
<input name="submit" value="Send Message" type="image" src="images/submit.png" class="submit" />
</p>
</form>
</div>





<?php
} else {
ini_set('display_errors','1');
ini_set('display_startup_errors','1');
error_reporting (E_ALL ^ E_NOTICE);

ini_set("SMTP","localhost");
ini_set("smtp_port","25");


$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'From: [email protected]' . "\r\n";
$headers .= 'Reply-to: ' .$_POST['email'] . "\r\n";

mail ( "[email protected]", "Contacto",
"<b>Nombre y apellidos:</b>" . $_POST['cname'] . "<br />\r\n
<b>E-mail:</b>" . $_POST['cemail'] . "<br />\r\n
<b>Teléfono de contacto:</b>" . $_POST['cphone'] . "<br />\r\n
<b>Consulta:</b>" . $_POST['cdebthtype'] . "<br />\r\n
<b>Palabras Clave:</b>" . $_POST['ref'] . "<br />\r\n
", $headers ) or die ('problem');

echo '<br><br>Muchas gracias por su interés. Su mensaje ha sido enviado y le contestaremos en el plazo más breve posible.<br />

Última edición por manibdn; 28/07/2010 a las 11:31
  #4 (permalink)  
Antiguo 27/07/2010, 13:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Referer en un Formulario

bueno, como te he dicho antes... dicho referer no depende de PHP, es una cabecera que envía el mismo navegador indicando la URL de referencia...

y pues... no puedes hacer nada al respecto, al menos no desde PHP...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 27/07/2010, 14:01
 
Fecha de Ingreso: julio-2010
Mensajes: 4
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Referer en un Formulario

Si puedes entonces darme otra solucion que nos sea PHP, porque lo necesito. Y que no sea ponerlo en los servidores que me funciona jejeje

Aqui no solo busco la URL de referencia, sino que me sirve para saber porque palabras me han buscado en un buscador, que es lo que mas me interesa.

Gracias!!

Última edición por manibdn; 27/07/2010 a las 14:07
  #6 (permalink)  
Antiguo 27/07/2010, 14:12
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Referer en un Formulario

entiendo, ese es el mecanismo de algunos plugins de WP, que usan ?q= para resaltar palabras, etc..

sin embargo, no hay una solución real... en ocasiones los navegadores, bajo condiciones que desconozco omiten dicho referer... pues, yo mismo he implementado recientemente que depende de esta variable... y bueno, no he conseguido aún una solución definitiva...

vamos, que por ej. en Firefox bajo Ubuntu pasa bien el referer en todas las pruebas de mi aplicación, mientras que en el Firefox de Windows no, y lo curioso es que cualquier otro navegador lo hace bien, etc, los escenarios son distintos y me parece un issue un tanto irregular...

una herramienta que te aconsejo utilizar para intentar resolver tu problema es Firebug, así analizas las peticiones de tus paginas... y revisas en las cabeceras HTTP de la petición si hay una referencia útil...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 28/07/2010, 05:21
 
Fecha de Ingreso: julio-2010
Mensajes: 4
Antigüedad: 14 años, 3 meses
Puntos: 0
Hola De nuevo, siento insistir con lo mismo.

He conseguido que me haga el referer pero solo me devuelve la ultima pagina visitada o la home, no la procedencia inicial

He desactivado el register_global a OFF, porque segun he leido el $_SERVER['HTTP_REFERER'] ha de ponerse con el register_global de PHP en OFF.

Esto ya me paso en otros servidores con el REFERER (me mostraba tambien la ultima pagina visitada), y lo consegui solucionar, pero en este no hay manera.

Siento insistir tanto pero esto es vital para mi.

Gracias

Cita:
Iniciado por pateketrueke Ver Mensaje
un mail??

pero si se trata de un foro público, ¿porque hay que facilitarte un mail?

el referer no siempre está disponible, en algunas configuraciones del servidor, o bien, por la configuración de los navegadores hay ocasiones en las que no hay tal valor...

a mi también me ha pasado, pero no hay solución con PHP... es algo que le corresponde enviar al navegador, y no hay código que arregle dicho comportamiento... que, aunque eventual... sucede!!
El problema es que a mi no me sale ni una sola vez, cuando en otros servidores donde tengo otros formularios con referers y desde el mismo ordenador , navegador,... en uno me lo muestra y en este me sale como referer solo la pagina de inicio, no desde donde me encontro.

Última edición por GatorV; 28/07/2010 a las 11:39

Etiquetas: referer, formulario
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 11:17.