Aquí os voy a enseñar cómo hacer que la información de un formulario se envie a vuestro dirección de correo electrónico de una forma sencilla. Primero de todo, si no sabeis nada de formularios leeos esto primero, en donde os enseña a crear los formularios con html: http://www.tuwebdeinformatica.com/Cr...ormulario.html
Una vez sabido esto vamos a empezar a preparar el formulario. Vamos a necesitar dos páginas. Primero crearemos una que llamaremos por ejemplo formulario.html (la podeis sacar de vuestra plantilla directamente), y luego crearemos otra que llamaremos por ejemplo formulario.php (es imprtante que la guardemos en formato php).
Vamos a empezar a trabajar en la formulario.html:
En el body vamos a añadir la etiqueta <form> para abrir el formulario de la siguiente forma:
<form action="formulario.php" method="post" enctype="multipart/form-data" name="form1">
El action=”formulario.php” sirve para que abra esa página, el method=”post” sirve para que envía por correo la información que enviemos a formulario.php, y name es el nombre del formulario.
Después procederemos a añadir las partes del formulario, en este caso vamos a poner un campo de texto para el nombre, otro para la contraseña, un área de texto para observaciones que quiera escribir y un grupo de opciones (en el manual que os dije antes conocidas por radio). Dejemos por lo tanto el código así:
<form action="formulario.php" method="post" enctype="multipart/form-data" name="form1">
<input name="nombre" type="text" id="nombre" maxlength="50">
<input name="contraseña" type="password" id="contraseña" value="">
<textarea name="observacion" id="observacion"></textarea>
<INPUT type="radio" name="opciones" value="opción1">Opción1
<INPUT type="radio" name="opciones" value="opción2">Opcion2
</form>
Todo lo que he puesto en rojo son los nombres de los campos de texto y los botones, y los utilizaremos más adelante.
Ahora agregamos los botones input y restablecer, y para ponerlo más bonito lo metemos todo en una tabla, quedando el código de la hoja html acabado así:
Ahora vamos a pasar al formulario.php. Primero podemos copiar el código de antes aquí para que una vez se haya enviado la información y se quede abierta esta página pueda volver a mandar algo. Os voy a decir cual es el código php de más que debemos agregar y ahora os lo explico:<head>
<title>Formulario</title>
</head>
<body>
<form action="formulario.php" method="post" enctype="multipart/form-data" name="form1">
<table width="100%" border="0">
<tr>
<td><div align="right">Nombre</div></td>
<td><input name="nombre" type="text" id="nombre" maxlength="50"></td>
</tr>
<tr>
<td><div align="right">Contraseña</div></td>
<td><input name="contraseña" type="password" id="contraseña" value=""></td>
</tr>
<tr>
<td><div align="right">Observaciones</div></td>
<td><textarea name="observacion" id="observacion"></textarea></td>
</tr>
<tr>
<td><div align="right"><input type="radio" name="opciones" value="opción1" /></div></td><td>Opción1</td>
</tr>
<tr>
<td><div align="right">
<input type="radio" name="opciones" value="opción2" /></div></td><td>Opción2</td>
</tr>
<tr>
<td><div align="right">
<input name="Restablecer" type="reset" id="Restablecer" value="Restablecer">
</div></td>
<td><input name="Enviar" type="submit" id="Enviar" value="Enviar"></td>
</tr>
</table>
</form>
</body>
</html>
Primero podemos ver que el código php empieza por <?php y acaba por ?>. En $sendTo tenemos que poner nuestro correo donde pone tucorreo@hotmail.com (en azul). En $subject tenemos que poner el nombre que tendrá el mensaje. Después iremos creando variables:<?php
$sendTo = "tucorrreo@hotmail.com";
$subject = "primerformulario";
$nombre = $_POST["nombre"];
$contraseña = $_POST["contraseña"];
$observacion = $_POST["observacion"];
$opciones = $_POST["opciones"];
$headers .= "";
$message = "\nNombre: " . $nombre . "\nContraseña: " . $contraseña . "\nobservacion: " . $observacion . "\nOpcion elegida: " . $opciones;
mail($sendTo, $subject, $message, $headers);
?>
Primero creamos la variable $nombre (en verde) a la que le asignamos dentro de $_POST[“”] lo que hayamos escrito en el campo de texto llamado nombre.
Después hacemos lo mismo con la contraseña y demás campos de texto.
También ponemos $opciones = $_POST["opciones"] para los dos botones de opciones que pusimos.
Después de esto ponemos $headers .= ""; aunque en éste no ponemos nada.
Luego dentro de $message vamos siguiendo la siguiente estructura:
“\nNombre” . $nombre para que nos envíe en el mensaje un texto que ponga Nombre y que al lado venga el valor de la variable nombre.
después lo mismo con las demás variables.
Terminamos el código php poniendo mail($sendTo, $subject, $message, $headers)
De esta forma nos queda la página formulario.php de la siguiente forma:
Una vez lo hayais hecho la subís al servidor y la probais, porque en vuestro ordenador no funciona a menos que tengais instalado el php.<head>
<title>Formulario</title>
</head>
<body>
<form action="formulario.php" method="post" enctype="multipart/form-data" name="form1">
<table width="100%" border="0">
<tr>
<td><div align="right">Nombre</div></td>
<td><input name="nombre" type="text" id="nombre" maxlength="50"></td>
</tr>
<tr>
<td><div align="right">Contraseña</div></td>
<td><input name="contraseña" type="password" id="contraseña" value=""></td>
</tr>
<tr>
<td><div align="right">Obsevaciones</div></td>
<td><textarea name="observacion" id="observacion"></textarea></td>
</tr>
<tr>
<td><div align="right"><input type="radio" name="opciones" value="opción1" /></div></td><td>Opción1</td>
</tr>
<tr>
<td><div align="right">
<input type="radio" name="opciones" value="opción2" /></div></td><td>Opción1</td>
</tr>
<tr>
<td><div align="right">
<input name="Restablecer" type="reset" id="Restablecer" value="Restablecer">
</div></td>
<td><input name="Enviar" type="submit" id="Enviar" value="Enviar"></td>
</tr>
</table>
</form>
<?php
$sendTo = "tucorrreo@hotmail.es";
$subject = "primerformulario";
$nombre = $_POST["nombre"];
$contraseña = $_POST["contraseña"];
$observacion = $_POST["observacion"];
$opciones = $_POST["opciones"];
$headers .= "";
$message = "\nNombre: " . $nombre . "\nContraseña: " . $contraseña . "\nobservacion: " . $observacion . "\nOpcion elegida: " . $opciones;
mail($sendTo, $subject, $message, $headers);
?>
</body>
</html>
Espero haberme explicado bien, porque me ha resultado difícil de explicar. Avisarme si funciona (a mi si me funciona)
Saludos, Juanma
Edición posterior: Si quereis que en el mensaje vaya la ip del que lo manda es tan sencillo como añadir las siguientes líneas en el código php:
<?php
$sendTo = "tucorrreo@hotmail.com";
$subject = "primerformulario";
$nombre = $_POST["nombre"];
$contraseña = $_POST["contraseña"];
$observacion = $_POST["observacion"];
$opciones = $_POST["opciones"];
$publica = $_SERVER[REMOTE_ADDR];
$headers .= "";
$message = "\nNombre: " . $nombre . "\nContraseña: " . $contraseña . "\nobservacion: " . $observacion . "\nOpcion elegida: " . $opciones . "\nIP Pública: " . $publica;
mail($sendTo, $subject, $message, $headers);
?>