Necesitamos crear una
Base de Datos para guardar los archivos
Código MySQL :
CREATE TABLE IF NOT EXISTS `clientes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nombre` varchar(100) NOT NULL,
`email` varchar(100) NOT NULL,
`asunto` varchar(100) NOT NULL,
`mensaje` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
Nuestro formulario
contacto.html, que lo hice hace un par de años dentro de una tabla:
Código HTML :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Contacto</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
<style type="text/css">
body {
font-family: Verdana;
}
h3 {
font-size: 30px;
font-variant: small-caps;
color: #006699;
}
</style>
</head>
<body>
<h3>Contáctenos:</h3>
<form action="enviar.php" method="post" id="form1">
<table width="89%" border="0">
<tbody>
<tr>
<td valign="top" align="right">Nombre y Apellidos:</td>
<td> </td>
<td valign="top"><input name="nombre" id="nombre" size="40" type="text" /></td>
</tr>
<tr>
<td valign="top" align="right">E-mail:</td>
<td> </td>
<td valign="top"><input name="email" id="email" size="40" type="text" /></td>
</tr>
<tr>
<td valign="top" align="right">Asunto:</td>
<td> </td>
<td valign="top"><input name="asunto" id="asunto" size="40" type="text" /></td>
</tr>
<tr>
<td valign="top" align="right">Mensaje:</td>
<td> </td>
<td valign="top"><label>
<textarea name="mensaje" id="mensaje" cols="40" rows="5"></textarea>
</label></td>
</tr>
<tr>
<td colspan="3" valign="top" align="center"><input name="enviar" id="enviar" value="Enviar" type="submit" /></td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
y por ultimo el archivo
enviar.php que hemos indicado en el form de nuestro formulario y que lo procesará:
Código PHP :
<?php
// Se reciben las variables
@$nombre = addslashes($_POST['nombre']);
@$email = addslashes($_POST['email']);
@$asunto = addslashes($_POST['asunto']);
@$mensaje = addslashes($_POST['mensaje']);
//Enviando Email al propietario del formulario
$pfw_header = "From: $email\n"
. "Reply-To: $email\n";
$pfw_subject = "Mensaje de mi Web";
$pfw_email_to = "tu_correo@tu_sitio.com";
$pfw_message = "Nombre: $nombre\n"
. "Email: $email\n"
. "Asunto: $asunto\n"
. "Mensaje: $mensaje\n";
@mail($pfw_email_to, $pfw_subject ,$pfw_message ,$pfw_header ) ;
//Enviando E-mail de auto respuesta al visitante
$pfw_header = "From: tu_correo@tu_sitio.com\n"
. "Reply-To: tu_correo@tu_sitio.com\n";
$pfw_subject = "Gracias por su mensaje";
$pfw_email_to = "$email";
$pfw_message = "$nombre su mensaje ha sido recibido, pronto nos comunicaremos a su dirección email.";
@mail($pfw_email_to, $pfw_subject ,$pfw_message ,$pfw_header ) ;
//Guardando registros en la Base de Datos MySQL
@$pfw_strQuery = "INSERT INTO `clientes`(`nombre`,`email`,`asunto`,`mensaje`)VALUES (\"$nombre\",\"$email\",\"$asunto\",\"$mensaje\")" ;
@$pfw_host = "localhost";
@$pfw_user = "root";
@$pfw_pw = "";
@$pfw_db = "contacto";
$pfw_link = mysql_connect($pfw_host, $pfw_user, $pfw_pw);
if (!$pfw_link) {
die('Could not connect: ' . mysql_error());
}
$pfw_db_selected = mysql_select_db($pfw_db, $pfw_link);
if (!$pfw_db_selected) {
die ('Can not use $pfw_db : ' . mysql_error());
}
$pfw_result = mysql_query($pfw_strQuery);
if (!$pfw_result) {
die('Invalid query: ' . mysql_error());
}
mysql_close($pfw_link);
//Si se envia el formulario, se muestra el mensaje de agradecimiento.
echo("<p align='center'><font face='Arial' size='3' color='#FF0000'>Gracias por su mensaje.<br>Pronto sera respondido.</font></p>");
?>
El PHP está comentado y si has manejado un poco de HTML y PHP no creo que te dé ningún problema.
El formulario no está validado, pues te pongo el primero que encontré en mis archivos, pero podrías buscar por allí algo en javascript, Spry en Dreamweaver o con PHP.
No me cuesta nada compartirlo, pues en éste foro y muchos otros he aprendido bastante y me gusta compensar lo que me han dado.