martes, 22 de julio de 2008

Formulario de Contacto en PHP

Muchas veces queremos realizar un formulario en una pagina web y lo queremos lo mas sencillo posible y que funcione.

Yo normalmente uso una pagina normal en HTM para el formulario, donde le indico todos los campos que quiero que se envien por e-mail.

Estos campos pueden ser 3, 4 o mas dependiendo de las necesidades pero pongamos que son 3 campos:


E-Mail
Nombre
Asunto

Una ved tengamos estos campos, con un identificador a cada uno claro, lo guardaremos en un archivo de HTM, por ejemplo contacto.html.

Ahora pasamos al archivo que nos enviara el e-mail con los datos del formulario.

Este archivo esta echo en PHP pero es bien sencillo, aqui os dejo el codigo:
<?php
$EmailFrom = Trim(stripslashes($_POST['Email']));
$EmailTo = "info@web.com";
$Subject = "Contacto Web";
$Nombre = Trim(stripslashes($_POST['Nombre']));
$EMail = Trim(stripslashes($_POST['Email']));
$Mensaje = Trim(stripslashes($_POST['Asunto']));

$Body = "";
$Body .= "Nombre: ";
$Body .= $Nombre;
$Body .= "\n";
$Body .= "E-Mail: ";
$Body .= $EMail;
$Body .= "\n";
$Body .= "Mensaje: ";
$Body .= "\n";
$Body .= $Mensaje;
$Body .= "\n";

$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=ok.html\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
}
?>


Como podeis ver es mas bien sencillo.

Este codigo lo poneis dentro de un archivo que se llame por ejemplo: contac.php

Tenemos que tener claro cuales son los ID que le dimos a los campos en el formulario de HTM puesto que son los que tendremos que poner dentro de las comillas al principio, despues del $_POST, para que la variable coja el valor de ese campo.

Despues tenemos la seccio donde se compone el e-mail que nos llegara. Este mail se compone con $Body.

En el cuerpo del mensaje como podemos observar hemos colocado las variables con los datos pero ademas le hemos puesto una especie de cabecera, para diferenciar los datos, y tambien hemos puesto algo adicional que es el "\n". Con esto hacemos un salto de linea dentro del cuerpo del mensaje y asi no se junta todo puesto que seria ilegible.

Ahora solo queda enviar el e-mail indicandole los datos necesarios, esto lo haremos con la instruccion de $sucsess. No explicare su contenido puesto que esta muy claro, pero si teneis alguna duda no dudeis en comunicarmela.

Recordar que en la seccion de Accion del formulario teneis que poner el nombre del archivo de PHP para que funcione, si no fallara y no mandara el mail.

Se pueden agregar todos los campos que se quieren y si se sabe de PHP podreir implantar mas sentencias para mas cuestiones, pero eso sera otro dia.

No hay comentarios: