Código PHP:
$name = htmlspecialchars($_POST['name']);
$email = htmlspecialchars(str_replace(" ","",$_POST['email']));
$mensaje = htmlspecialchars($_POST['mensaje']);
function comprobar_email($email){
//compruebo unas cosas primeras
if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){
if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
//miro si tiene caracter .
if (substr_count($email,".")>= 1){
//obtengo la terminacion del dominio
$term_dom = substr(strrchr ($email, '.'),1);
//compruebo que la terminación del dominio sea correcta
if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
//compruebo que lo de antes del dominio sea correcto
$antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
$caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
if ($caracter_ult != "@" && $caracter_ult != "."){
return true;
}
else {
return false;
}
}
}
}
}
}
if (empty($name) || empty($mensaje)) {
echo "Rellene todos los campos del formulario, Volver al <a href=\"form.html\">FORM</a>";
}
else
{
if (strlen ($name) > '100') {
echo "El Nombre no debe superar los 100 caracteres";
}
else
{
if (strlen ($mensaje) > '600') {
echo "Mensaje muy grande";
}
else
{
if (comprobar_email($email)) {
$remitente = "[email protected]"; /* Correo a donde se enviara el mensaje */
$destinatario = "[email protected]"; /* Correo que envia el mensaje, es util para que no envie siempre el mensaje a correo no deseado */
$headers = "MIME-Version: 1.0 \r\n";
$headers .= "From: $destinatario \r\n";
$headers .= "Reply-To: $remitente \r\n";
$headers .= "Return-path: $remitente \r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1 \r\n";
$body = "
<table><tr><td width=\"150\" valign=\"top\"><strong>Nombre:</strong></td><td> ".$name."</td></tr>"."
<tr><td valign=\"top\"><strong>Email:</strong></td><td> ".$email."</td></tr>"."
<tr><td valign=\"top\"><strong>Mensaje:</strong></td><td>".$mensaje."</td></tr></table>";
mail($remitente,"Probando",$body, $headers);
echo "Mensaje enviado con Exito";
} else
{
echo "Esta mal escrito el mail, porfavor volver a <a href=\"form.html\" >FORM</a>";
}
}
}
}
Código HTML:
<html> <head> <title>Formulario de Contacto</title> <script type="text/javascript"> function setFocus(aField) { document.forms[0][aField].focus(); } function isAnEmailAddress(aTextField) { if (document.forms[0][aTextField].value.length<5) { return false; } else if (document.forms[0][aTextField].value.indexOf("@") < 3) { return false; } else if (document.forms[0][aTextField].value.length - document.forms[0][aTextField].value.indexOf("@") < 4) { return false; } else { return true; } } function isEmpty(aTextField) { if ((document.forms[0][aTextField].value.length==0) || (document.forms[0][aTextField].value==null)) { return true; } else { return false; } } function validate() { if (isEmpty("name")) { alert("Por favor, rellene su nombre."); setFocus("name"); return false; } if (isEmpty("mensaje")) { alert("Por favor, Escriba su mensaje."); setFocus("mensaje"); return false; } if (!isAnEmailAddress("email")) { alert("La dirección de correo electrónico no es válida."); setFocus("email"); return false; } return true; } </script> </head> <body> <form action="enviar.php" method="post" onSubmit="return validate();"> Nombre <input type="text" name="name" /><br /><br /> Email <input type="text" name="email" /><br /><br /> Mensaje <textarea type="text" name="mensaje"></textarea><br /><br /> <input type="submit" value="Enviar" /> </form> </body> </html>