Llevo unos dias liado con un envio de un formulario que no acaba de funcionar y por mas que miro no encuentro donde esta el fallo.
Tengo 3 archivos: formulario.php, scripts2.js y sendmsg.php
En formulario.php tengo el siguiente codigo:
Código PHP:
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Documento sin título</title>
<meta charset="UTF-8">
<link rel="stylesheet" href="css/bootstrap.css">
<link rel="stylesheet" href="css/idarte.css">
<link href="https://fonts.googleapis.com/css?family=Titillium+Web:200,400,700|Cabin|Raleway:100" rel="stylesheet" type="text/css">
<meta name="viewport" content="initial-scale=1">
</head>
<body style="background-color:#fff !important">
<div class="container">
<div class="row">
<div class="col-md-12">
<form class="form-horizontal" role="form" >
<div class="form-group">
<div class="col-sm-offset-2 col-sm-4">
<label for="nombre" class="sr-only">Nombre</label>
<input type="text" class="form-control nombre" id="nombre" name="nombre" placeholder="nombre"/>
</div>
<div class="col-sm-4">
<label for="email" class="sr-only">email</label>
<input type="email" class="form-control email" id="email" name="email" placeholder="email" />
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-8">
<label for="mensaje" class="sr-only">mensaje</label>
<textarea class="form-control mensaje" rows="6" id="mensaje" name="mensaje" placeholder="mensaje"></textarea>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-8">
<button type="button" class="btn btn-default boton_envio" id="boton_envio">
enviar mensaje
</button>
<div id="respuesta"></div>
<div class="alert alert-success enviook nover" role="alert">¡Mensaje enviado!</div>
<div class="alert alert-danger errorenvio nover" role="alert">¡Ha habido un error en el envío!</div>
</div>
</div>
</form>
</div>
</div>
</div>
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/scripts2.js"></script>
</body>
</html>
Código HTML:
var x=$(document); x.ready(inicializar); function inicializar(){ $("#boton_envio").on("click",enviar); } function enviar(){ //recoger variables <- ok var nombre = $("#nombre").val(); var email = $("#email").val(); var validacion_email=/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/; var mensaje = $("#mensaje").val(); //Comprobar variables <-ok if(nombre == ""){ $("#nombre").focus(); return false; } if(mensaje == ""){ $("#mensaje").focus(); return false; } if(mensaje.length < 3){ $("#mensaje").focus(); alert("Mensaje demasiado corto"); return false; } if(email==""||!validacion_email.test(email)){ $(".email").focus(); return false; } //Enviar datos por post y Ajax var datos='nombre='+nombre+'&email='+email+'&mensaje='+mensaje; $('#respuesta').text(datos); $.ajax({ type:"POST", url:"sendmsg.php", data:datos, success:function(){ $('#boton_envio').hide(); $('.enviook').css('display','block'); $('.enviook').fadeOut(5000,function(){ $('.boton_envio').fadeIn('slow'); }); $('#respuesta').load('sendmsg.php'); $("#nombre").val(""); $("#email").val(""); $("#mensaje").val(""); }, //Fin function Success error:function(){ $('.boton_envio').hide(); $('.errorenvio').css('display','block'); $('.errorenvio').fadeOut(5000,function(){ $('.boton_envio').fadeIn('slow'); }); } //Fin function Error }); }
Código PHP:
<?php
// Guardar los datos recibidos en variables:
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$mensaje = $_POST['mensaje'];
echo "Hola $nombre te voy a enviar un email a $email con este mensaje:<br> $mensaje <br>";
// Definir el correo de destino:
$dest = "[email protected]";
// Estas son cabeceras que se usan para evitar que el correo llegue a SPAM:
$headers = "From: $nombre <$email>\r\n";
$headers .= "X-Mailer: PHP5\n";
$headers .= 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Aqui definimos el asunto y armamos el cuerpo del mensaje
$asunto = "Contacto";
$cuerpo = "Nombre: ".$nombre."<br>";
$cuerpo .= "Email: ".$email."<br>";
$cuerpo .= "Mensaje: ".$mensaje;
// Esta es una pequena validación, que solo envie el correo si todas las variables tiene algo de contenido:
if($nombre != '' && $email != '' && $mensaje != ''){
mail($dest,$asunto,$cuerpo,$headers);
echo "Se ha enviado"; //ENVIAR!
}else{
echo "Ha habido un error";
}
?>
Llevo varios dias haciendo pruebas y no consigo ver donde esta el fallo...
Alguien podria decirmelo??
Gracias!