Hola, estoy haciendo un formulario de contacto, pero hay algo que me falla en el y no se que es, a ver si alguien me puede decir que hago mal, aquí dejo el código:
Código PHP:
Ver original<body id="top">
<?
if(isset($_POST['boton'])){ if($_POST['Nombre'] == ''){
$errors[1] = '<span class="error">Ingresa tu Nombre</span>';
}else if($_POST['Email'] == '' or
!preg_match("/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$/",$_POST['email'])){ $errors[2] = '<span class="error">Ingresa un email válido</span>';
}else if($_POST['Asunto'] == ''){
$errors[3] = '<span class="error">Ingresa el asunto del mensaje</span>';
}else if($_POST['Mensaje'] == ''){
$errors[4] = '<span class="error">Ingresa el mensaje</span>';
}else{
$nombre = $_POST['Nombre'];
$email = $_POST['Email'];
$asunto = $_POST['Asunto']; //Asunto
//Cabeceras del correo
$header = 'From: ' . $email . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n"; $header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain"; //
$mensaje = "Nombre: " . $nombre . "\nAsunto: " . $asunto . " \r\n";
$mensaje .= "E-mail: " . $email . " \r\n";
$mensaje .= "Mensaje: " . $_POST['Mensaje'] . " \r\n";
$mensaje .= "Enviado el " . date("d/m/y \a \l\a\s H:i:s ");
$result = '<div class="result_ok">Tu mensaje se envio correctamente.</a>';
// si el envio fue exitoso reseteamos lo que el usuario escribio:
$_POST['nombre'] = '';
$_POST['email'] = '';
$_POST['asunto'] = '';
$_POST['mensaje'] = '';
}else{
$result = '<div class="result_fail">Hubo un error al enviar el mensaje :(</a>';
}
}
}
?>
<div id="respond">
<form id="form1" name="form1" method="post" action="">
<p>
<input name="Nombre" type="text" id="Nombre" size="30" value='<?php echo $_POST['Nombre']; ?>'/>
<label for="Nombre"><small>Nombre (Requerido)</small></label>
</p>
<p>
<input name="Email" type="text" id="Email" size="40" value='<?php echo $_POST['Email']; ?>'/>
<label for="Email"><small>E-Mail (Requerido)</small></label>
</p>
<p>
<input name="Asunto" type="text" id="Asunto" size="100" value='<?php echo $_POST['Asunto']; ?>'/>
<label for="Asunto"><small>Asunto (Requerido)</small></label>
</p>
<p>
<textarea name="Mensaje" cols="500px" rows="10" id="Mensaje"><?php echo $_POST['Mensaje']; ?></textarea>
<label for="Mensaje" style="display:none;"><small>Mensaje (Requerido)</small></label>
</p>
<p>
<input type='submit' value='Enviar Mensaje' class='boton' name='boton'/>
<input name="Borrar" type="reset" id="Borrar" value="Borrar" /></center>
</p>
</form>
</div>
<? echo $result; ?><?php echo $errors[1]; ?><?php echo $errors[2]; ?><?php echo $errors[3]; ?><?php echo $errors[4]; ?>
</body>
Cuando ingreso email y después doy a enviar tendría que dar error porque falta el asunto e imprimir un mensaje de alerta, pero no lo imprime y lo mismo pasa con el mensaje, en cambio con el nombre y email funciona bien.
Gracias.