Hola joaowizard,
Llevas razón, este es el último post. Además aprovecho para darte las gracias, por tener tanta paciencia y explicar a un novato, paso a paso como hacer un Formulario Completo.
A continuación dejo una breve explicación para otros y el "Codigo famoso"
CARASTERISTICAS DEL FORMULARIO 1º Tras rellenar envia un email al Administrador de la web, y al Usuario
2º Tiene una imagen Captcha para impedir Spam
3º Todos los campos se validan y sale una Ventana si algún campo esta en blanco.
4º Es un ejemplo completo que incluye select, radio button, checkbox, textarea
5º Si el formulario esta mal rellenado vuelve para atrás y los datos se conservan
6º Si se rellena correctamente sale un mensaje de "Su email se ha enviado correctamente"
NOTAS: 1º Debes tener una imagen cualquiera llamada "fondocaptcha.gif" de por ejemplo 100x30pixeles, y guardala junto con los demás archivos.
2º Crea 3 archivos llamados "formulario.php", "procesa.php" y "captcha.php"
y pegales los codigos correspondientes, que abajo se detallan.
3º Subelos a una carpeta de tu servidor y pon la ruta
http://www.tuweb.org/formulario.php
a disfrutar!
CODIGOS CORTA Y PEGA
formulario.php
Código PHP:
<?php session_start(); ?>
<html><head><title>formulario</title></head>
<body>
<form name="ejemplo" action="procesa.php" method="post">
<p>Nombre: <input type="text" name="nombre">(obligatorio)</p>
<p>email: <input type="text" name="email">(obligatorio)</p>
<p>Habilidades:<input type="radio" name="karate">Baloncesto <input type="radio" name="karate">Karate <input type="radio" name="karate">Futbol (obligatorio)</p>
<p>Aceptas las condiciones: <input type="checkbox" name="aceptas">Si(obligatorio)</p>
<p>ciudad: <select name="ciudad" size="1">
<option>Barcelona</option>
<option>Madrid</option>
<option>Sevilla</option>
</select>(obligatorio)</p>
<p>Comentarios: <textarea name="comentarios" rows="2"></textarea>(obligatorio)</p>
<p><img src="captcha.php" width="100" height="30"></p>
<p><input name="tmptxt" type="text">
(obligatorio)</p>
<p>
<label>
<input type="submit" name="button" id="button" value="Enviar">
</label>
</p>
</form>
</body>
procesa.php
Código PHP:
<?php session_start();//verifico captcha
if ($_SESSION['tmptxt'] != $_POST['tmptxt']) {
echo "<script>window.alert('IMAGEN DE SEGURIDAD INVALIDA');</script>;";;//mensaje de error correspondiente
echo "<script>location.href='javascript:history.back()' ;</script>;";//con esto no se pierden los datos del FORM
exit();
}
//**************** COMPRUEBO NOMBRE VACIO **********************
if (!($_POST['nombre'])){
echo "<script>window.alert('Debe llenar el campo Nombre');</script>;";
echo "<script>location.href='javascript:history.back()' ;</script>;";
exit();
}
//**************** COMPRUEBO EMAIL VACIO Y VALIDO **********************
if (!($_POST['email'])){
echo "<script>window.alert('Debe llenar el campo Email');</script>;";
echo "<script>location.href='javascript:history.back()' ;</script>;";
exit();
}
elseif(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$_POST['email'])){
echo "<script>window.alert('El email ingresado es invalido');</script>;";
echo "<script>location.href='javascript:history.back()' ;</script>;";
exit();
//acá verifico que el email sea VALIDO, que tenga la forma [email][email protected][/email]
}
//**************** COMPRUEBO RADIO BOTON MARCADO **********************
if (!($_POST['karate'])){
echo "<script>window.alert('Debe llenar el campo Habilidades Radio buton');</script>;";
echo "<script>location.href='javascript:history.back()' ;</script>;";
exit();
}
//**************** COMPRUEBO si aceptas las condiciones **********************
if (!($_POST['aceptas'])){
echo "<script>window.alert('Debe llenar el campo Aceptar las condiciones');</script>;";
echo "<script>location.href='javascript:history.back()' ;</script>;";
exit();
}
//**************** COMPRUEBO ciudad **********************
if (!($_POST['ciudad'])){
echo "<script>window.alert('Debe llenar el campo ciudad');</script>;";
echo "<script>location.href='javascript:history.back()' ;</script>;";
exit();
}
//**************** COMPRUEBO comentarios MARCADO **********************
if (!($_POST['comentarios'])){
echo "<script>window.alert('Debe llenar el campo comentarios');</script>;";
echo "<script>location.href='javascript:history.back()' ;</script>;";
exit();
}
//una vez que verifique todo, pues envÃ*o el email.
//Declaras hacia donde se envÃ*a el correo, el Destinatario
$recipiente = "[email protected]";
//defines el Asunto del correo
$asunto = "Contacto desde la Pagina WEB ";
//defines el cuerpo del mensaje
$message ="nombre: ".$_POST['nombre']."<br>";
$message .="email: ".$_POST['email']."<br>";
$message .="preferencias: ".$_POST['karate']."<br>";
$message .="ciudad: ".$_POST['ciudad']."<br>";
$message .="comentarios: ".$_POST['comentarios']."<br>";
$message = stripslashes($message);
//haces los encabezados
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type:text/html; charset=iso-8859-1\r\n";
$headers .= "From: $email\r\n";
$headers .= "Repaly-to: $email\r\n";
$headers .= "Cc: ".$_POST['email']."\r\n";//le envÃ*as una copia al remitente
//chao email!!
mail($recipiente,$asunto,$message,$headers);
echo "El mensaje se envio correctamente";
?>
captcha.php
Código PHP:
<?php session_start();
function captcha($length) {
$pattern = "1234567890abcdefghijklmnopqrstuvwxyz";
for($i=0;$i<$length;$i++) {
$key .= $pattern{rand(0,50)};
}
return $key;
}
$_SESSION['tmptxt'] = captcha(8);
$captcha = imagecreatefromgif("fondocaptcha.gif");
$colText = imagecolorallocate($captcha, 0, 0, 0);
imagestring($captcha, 5, 16, 7, $_SESSION['tmptxt'], $colText);
header("Content-type: image/gif");
imagegif($captcha);
?>