Comunidad de diseño web y desarrollo en internet online

¿Cómo identificar origen de un click que lleva a formulario?

Citar            
MensajeEscrito el 11 Nov 2010 12:59 pm
Hola a todos.
Quisiera saber si hay alguna forma de identificar desde qué página del sitio se está llegando al formulario de contacto?
Hay varias páginas que llevan el mismo botón que llega al formulario, pero el cliente me pide saber desde dónde.
Tal vez poniéndoles "id" diferente a cada botón se pueda modificar el php que procesa el formulario(adjunto más abajo), pero como pueden ver en mi tema anterior, no sé php y me costó un mundo llegar alo que tengo.

La otra petición que me hacen es que en el formulario de contacto haya una casilla de verificación que el visitante pueda marcar que dirá algo así como "quiero recibir una copia del mail que se recibirá con mi solicitud de contacto". Suponiendo que la casilla la marca y su variable es $_POST['solicito_info'];
¿Qué tendría que agregar y dónde al php para que le llegue una copia al que lo envía?

Código PHP :

<?php

/*Recepción de datos*/

$subject = 'Formulario de Contacto';
$webMaster = '[email protected]';
$nombres = $_POST['nombres'];
$empresa = $_POST['empresa'];
$cargo = $_POST['cargo'];
$from = $_POST['from'];
$pais = $_POST['pais'];
$area = $_POST['area'];
$telefono = $_POST['telefono'];    
$message = $_POST['message'];
   
   $body = <<<EOD
Mensaje recibido desde: $subject\n
Nombres: $nombres\n
Empresa: $empresa\n
Cargo: $cargo\n
Email: $from\n
Telefono: $pais $area $telefono\n
Mensaje:\n
$message\n
EOD;

   $headers = "From: $from\r\n";
   $headers .= "Content-Type: text/plain; charset=\"utf-8\"\n";
   $success = mail($webMaster, $subject, $body, $headers);
   
/*Results rendered as HTML*/
header ("Location: http://www.xxx.cl/es/gracias_es.html");
?>


Gracias a todos los que puedan ayudar. :wink:

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 11 Nov 2010 01:33 pm
para lo primero, no se si necesites solo identificarlos, para eso podrias usar servicios de analiticas como Google Analytics
tambien si necesitas modificar el formulario en razon de la pagina podrias usar "$HTTP_REFERER;" o "$_SERVER['HTTP_REFERER'];"
intenta usar "echo $_SERVER['HTTP_REFERER'];" o "echo $HTTP_REFERER;" para que veas como funcionan ;)

Por tribak

Claber

2448 de clabLevel

6 tutoriales

Genero:Masculino   Héroes

Fotógrafo o algo

firefox
Citar            
MensajeEscrito el 11 Nov 2010 02:11 pm
Para saber desde qué página hicieron clic para llegar al formulario, lo que te ha dicho tribak es lo correcto.
La única pega que tiene usar $_SERVER['HTTP_REFERER'] es que ese dato lo proporciona el navegador y puede ser deshabilitado por el visitante (aunque no muchos lo saben, claro).
Por otro lado en cada botón o hiperlink que lleve al formulario podrías agregarle un parámetro más con valor distinto en cada caso, algo como:

Código HTML :

<a href="contacto.php?idref=5">Formulario de contacto</a>


Y luego en tu script de formulario:

Código PHP :

$referencia = @$_GET['idref'];

En $referencia tendrás el valor de idref con el cual podrás determinar en qué hiperlink hizo clic el visitante.

Sobre tu segunda pregunta: usa PHPMailer o Swift Mailer.
Lo que tienes que hacer es agregar el encabezado CC (Carbon Copy) al correo que estás enviando con la dirección de correo que el usuario mismo proporcione, hacerlo con la función mail() de PHP es engorroso pero usando PHPMailer o SwiftMailer es una pavada. Claro que tendrás que aprender más PHP para que todo esto funcione.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 11 Nov 2010 07:27 pm
Voy a hacer pruebas pasándole parámetros diferentes a cada botón.
Espero que resulte.

Alguna otra sugerencia para la segunda pregunta usando lo que ya tengo hecho?

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 12 Nov 2010 01:42 am
yo propongo algo que creo es sencillo también... qué tal si en cada formulario ponen una variable hidden, algo así:

Código :

<input type="hidden" value="nombre de la página actual" />


Luego en el código PHP, le toca tomar la variable mediante POST, algo muy parecido a lo que hizo DriverOp pero se va por post ^_^ mejor dicho la que le quede mas fácil xD

Por gosunkugi

Claber

251 de clabLevel

1 tutorial

Genero:Masculino  

Kuri - frontend dev - XueZhongWen!

safari
Citar            
MensajeEscrito el 12 Nov 2010 05:02 pm
Para la 2a. insertas un checkbox, de nombre como dices pon "solicito_info", de valor pon "true"

entonces en php recoges su valor

Código PHP :

$copia = $_POST['solicito_info'];

y solo tienes que hacer una comparación para agregar el correo

Código PHP :

if($copia == "true"){
  //agregas el correo 
}

si es "true" agrega el correo, sino no hace nada

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 13 Nov 2010 09:41 pm
de las opciones que leo creo que la mas valida en tu caso seria que cada link que agregues lo lleve por metodo GET un identificador como te propone "DriverOp" en su respuesta porque por lo que me imagino cuando llegan al formulario de contacto lo hacen por un link y la experiencia a nivel usuario seguiria siendo la misma solo que tu obtendrias ese dato que buscas como valos agregado cuando hagan el submit del formulario de contacto, un saludo.

Por sgerman7

48 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 15 Nov 2010 12:11 pm
Vengo llenado de un viaje y estuve sin conexión a internet por tres días. Analizaré las diferentes opciones y gracias a todos.
Si tengo dudas les volveré a preguntar. ^^

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.