En esta oportunidad les voy a enseñar una manera de recoger y enviar la URL a través de un formulario.
Voy a utilizar el array $_SERVER y dentro colocare el HTTP_REFERER que emplea el agente de usuario para la pagina actual.
en mi PHP que recibe y envia el formulario quedaria asi:
Código PHP :
$sUrl= $_POST['url'] = $_SERVER['HTTP_REFERER'];
Quizás pueda servir para encontrar rápidamente la pagina desde donde se envió el formulario.
A mi me ayudo cuando manejaba una tienda en linea la cual tenia mas de 400 productos en linea y por este método, los ubicaba al instante, bueno ustedes le pueden dar el uso que deseen.
NOTA: Utilice la versión de Google Crohme 18, el cual soporta la validación nativa de HTML5 , que es con la cual valida el formulario.
Bueno vamos al tutorial.
Primero creo la pagina para mi formulario de contacto, la cual llamo index.php :
Código HTML :
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Recoger URL con PHP</title> <link href="css/estilos.css" rel="stylesheet" type="text/css"> </head> <body> <form action="php/enviar.php" method="post"> <input type="hidden" name="email"/> <input type="hidden" name="asunto" value="Ejemplo, recoger URL con PHP"/> <label>Ingresa tu Nombre :</label><br/> <input type="text" name="nombre" title="Se necesita un nombre" required> <br/><br/> <label>Ingresa Tu E-mail para enviar la URL :</label><br/> <input type="text" name="email" title="Utiliza un correo válido" required> @ <input name="clientemail" type="text" title="Utiliza un correo válido" required> <br/><br/> <input name="enviar" type="submit" class="botonform" id="enviar" value="Enviar"> <input name="limpiar" type="reset" class="botonform" id="limpiar" value="Limpiar"> </form> </body> </html>
Luego creo mi archivo PHP que procesa y envía la información, lo voy a llamar enviar.php :
Código PHP :
<? // En esta sección se declaran las variables $sPlace = $_POST['place']; $sEmail = $_POST['email']; $sClientemail = $_POST['clientemail']; $sAsunto = $_POST['asunto']; $sMensaje = $_POST['mensaje']; $sNombre = $_POST['nombre']; $sUrl= $_POST['url'] = $_SERVER['HTTP_REFERER']; //Aca se ponen los datos del remitente $myname = $sNombre; $myemail = $sEmail; //Aca se cambia la dirección de correo del destinatario $contactemail1 = $sEmail.'@'.$sClientemail; $sTitulo = "Datos recibidos de ".$myname."<p>"; $sDetalles = "Asunto : ".$sAsunto."<br>"."E-mail : ".$sEmail."@".$sClientemail."<br>"."URL: ".$sUrl."<br>"; $message = $sTitulo.$sDetalles; $subject = $sAsunto; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; $headers .= "From: ".$myname." <".$myemail.">\r\n"; $headers .= "To: ".$contactname1." <".$contactemail1.">\r\n"; mail($contactname1, $subject, $message, $headers); ?> <script text type="text/javascript"> location.href = "ok.php"; </script>
Puede ver en el código PHP que estoy recogiendo la URL y la meto en la variable $sUrl, para luego enviarla y mostrarla en el correo:
$sTitulo = "Datos recibidos de ".$myname."<p>";
$sDetalles = "Asunto : ".$sAsunto."<br>"."E-mail : ".$sEmail."@".$sClientemail."<br>"."URL: ".$sUrl."<br>";
Ahora creo unas pocas lineas de código CSS para mi estilizar mi formulario, creo un archivo llamado estilos.css :
Código CSS :
input:invalid { border: 1px solid red; } /* Estilo por defecto */ input:required:invalid { border: 1px solid red; } input:required:valid { border: 1px solid green; } .botonform { font-family: Arial, Helvetica, sans-serif; color: #FFF; background-color: #333; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; cursor: pointer; } .rojita { color: #F00; }
Por ultimo creo una pagina que muestra el mensaje de "Enviado ! " , que se va mostrar una ves que mi formulario haya sido enviado sin problenas, lo guardo con el nombre: ok.php :
Código HTML :
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>ok</title> </head> <body> <h2> Enviado !</h2> </body> </html>
Listo eso es todo !
Ustedes me dirán porque, puse los inputs de el correo en dos partes, lo que paso es que mi jefe lo quería así, según el obligaba a que el usuario escriba su correo, trate de convencerlo pero era bien terco, bueno lo deje así y nunca decidí cambiarlo, pero ustedes lo pueden hacer, les dejo a su criterio, al menos ya esta la idea.
Les dejo una DEMO para que puedan ver un ejemplo en funcionamiento (Ingresa tu correo para que te llegue la URL y puedas ver el ejemplo adecuadamente):
http://jrcl.16mb.com/tutoriales/recoger_url_con_php/
Ademas les dejo el manual de PHP en donde puedes encontrar mas información sobre $_SERVER['HTTP_REFERER']; :
http://php.net/manual/es/reserved.variables.server.php
Espero les haya gustado !