Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/10/2012, 15:31
Avatar de wataru77
wataru77
 
Fecha de Ingreso: febrero-2007
Mensajes: 20
Antigüedad: 18 años
Puntos: 1
Pregunta Fromulario html + validacion js + envio php

Hola a todos de nuevo ;)

Llevo todo el dia con ese problema.

Mis conocimientos en PHP y JS son mínimos tengo muchas dudas.

Es posible hacer solo en HTML5 un formulario para que se envíe el solo, o siempre he de depender de un archivo "enviar.php" o JavaScript?

Si es posible, ¿Alguien sabe algún "tutorial" o una muestra de codigo para luego adecuarlo a mis necesidades?

Pero bueno, vamos a lo que importa:

Codigo formulario HTML:

Código:
<form name="formulario_frm" action="enviar.php" method="post" enctype="application/x-www-form-urlencoded">
 	<fieldset>
 		<?php
 			error_reporting (E_ALL ^ E_NOTICE ^ E_WARNING);
 			if(isset($_GET["respuesta"])) {
 				echo "<span>".$_GET["respuesta"]."</span><br /><br />";
 		}
 		?>
 		<legend>Env&iacute;anos tus comentarios</legend>
 		<div>
 			<label for="nombre">Nombre:</label>
 			<input type="text" id="nombre" name="nombre_txt" required />
 		</div>
 		<div>
 			<label for="apellidos">Apellidos:</label>
 			<input type="text" id="apellidos" name="apellidos_txt" required />
 		</div>
 		<div>
 			<label for="email">Email:</label>
 			<input type="email" id="email" name="email_txt" required />
 		</div>
 		<div>
 			<label for="asunto">Asunto:</label>
 			<input type="text" id="asunto" name="asunto_txt" required />
 		</div>
 		<div>
 			<label for="comentarios">Comentarios:</label>
 			<textarea id="comentarios" name="comentarios_txa" cols="31" rows="5" required ></textarea>
 		</div>
 		<div>
			<input type="button" id="enviar" name="enviar_btn" value="Enviar" />
 		</div>
 	</fieldset>
</form>
Codigo JS (No tengo problemas con el)

Código:
function validar() {
		var verificar = true;
		var expRegEmail = /^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/;

		if (!document.getElementById("nombre").value) {
			alert("El campo nombre es requerido");
			document.getElementById("nombre").focus();
			verificar=false;
		} else if (!document.getElementById("apellidos").value) {
			alert("El campo apellidos es requerido");
			document.getElementById("apellidos").focus();
			verificar=false;
		} else if (!expRegEmail.exec(document.getElementById("email").value)) {
			alert("El campo email es requerido");
			document.getElementById("email").focus();
			verificar=false;
		} else if (!document.getElementById("asunto").value) {
			alert("El campo asunto es requerido");
			document.getElementById("asunto").focus();
			verificar=false;
		} else if (!document.getElementById("comentarios").value) {
			alert("El campo comentarios es requerido");
			document.getElementById("comentarios").focus();
			verificar=false;
		}

		if(verificar) {
			document.formulario_frm.submit();
		}
	}

	window.onload = function() {
		document.getElementById("enviar").onclick = validar;
	}
Codigo PHP (El rebelde!!)

Código:
<?php
	$email_from = "Formulario de contacto Innova Bcn";
	$nombre = $_POST["nombre_txt"];
	$apellidos = $_POST["apellidos_txt"];
	$email = $_POST["email_txt"];
	$asunto = $_POST["asunto_txt"];
	$comentarios = $_POST["comentarios_txa"];
	$headers = 'From: '.$email_from."\r\n".'Reply-To: '.$email."\r\n" .'X-Mailer: PHP/' . phpversion();

	if(mail($nombre, $apellidos, $asunto, $comentarios, $headers)){
		$respuesta = "Su mensaje ha sido envio";
	} else {
		$respuesta = "Ocurrio un error, no se pudo enviar el mensaje. Intentelo de nuevo.";
	}
	header("Location: contacto.php?respuesta=$respuesta");
?>
Con este ultimo codigo PHP esta devolviendo el error al HTML: ("Ocurrio un error, no se pudo enviar el mensaje. Intentelo de nuevo.")
No se que puede llegar a ocurrir, quizás sea ( $headers = 'From: '.$email_from."\r\n".'Reply-To: '.$email."\r\n" .'X-Mailer: PHP/' . phpversion(); ) que me da que será eso, pero no se como solucionarlo.

Otra cosa que me intriga es cuando lo envie como se verá dicho mensaje al recibirlo. Me explico:
La idea es que tenga una pequeña estructura.

Detalles del mensage.

Nombre: XXXXXX
Apellidos: XXXXX XXXXXX
Email: XXXXXXXXX
Asunto: XXXXXXX XXXX
Comentarios:
XXXXXXXXXXXXXXX
XXXXXXXX
XXXXXXXXXXXXX
XXXXXX


Muchas gracias por vuestro tiempo.
Espero con ilusión las respuestas XD ^_^

Un saludo.