Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/11/2010, 14:07
txusmax
 
Fecha de Ingreso: noviembre-2010
Mensajes: 18
Antigüedad: 13 años, 6 meses
Puntos: 0
validar campos antes de enviar

Buenas;

Tengo un formulario de contacto en la web, actualmente lo que hace es que lo rellenas (o no), le das a enviar, te sale un cuadro diciendo que se ha enviado correctamente y vuelve a mostrar la pagina del formulario.

Esto me lo hace correctamente, pero cuando intento meter funciones para que me compruebe que se han rellenado 2 campos (nombre y telefono), me empieza a hacer locuras jejeje, es decir, consegui que se muestre una ventana cuando no hay nada en ellos y se le da a enviar, pero igualmente lo envia, asi que he borrado las modificaciones y os pego aqui el codigo de lo que tengo funcionando ahora mismo.

codigo del contacto.html:

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Contacto</title>

<style type="text/css">
<!--
body {
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
	background-color: #FFF;
	background-image: url();
	background-repeat: repeat-x;
}
.centrado {
	position: absolute;
	top: 50%; 
                left: 50%;
	height: 600px;
	width: 800px;
 	margin-top: -300px;
 	margin-left: -400px;
}

#formulario {
	position:absolute;
	width:311px;
	height:298px;
	z-index:1;
	left: 409px;
	top: 166px;
}
</style>
</head>

<body>
	
    <div class="centrado" id="contenedor">
      <div id="formulario">
        <form id="form1" name="form1" method="post" action="send.php"> 
            <label for="nombre"><img src="../../imagenes/compartir2.jpg" width="94" height="21" /></label>
            <input name="nombre" type="text" id="nombre" maxlength="40" />
          <p>
            <label for="telefono"><img src="../../imagenes/compartir2.jpg" width="94" height="21" /></label>
            <input name="telefono" type="text" id="telefono" maxlength="9" />
          </p>
          <p>
            <label for="email"><img src="../../imagenes/compartir2.jpg" width="94" height="21" /></label>
            <input name="email" type="text" id="email" maxlength="50" />
          </p>
          <p>
            <label for="mensaje"><img src="../../imagenes/compartir2.jpg" width="94" height="21" /></label>
            <textarea name="mensaje" id="mensaje" cols="41" rows="5"></textarea>
          </p>
          <p>
            <label for="enviar"><img src="../../imagenes/compartir2.jpg" width="94" height="21" /></label>
            <input type="submit" name="enviar" id="enviar" value="Enviar"/>
          </p>
        </form>
      
      </div>
    
    </div>
    
</body>
</html>

Codigo del send.php:

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>

<script type="text/javascript">
	window.alert("El mensaje ha sido enviado. Gracias."); /*Pop up que da el ok de mensaje enviado*/ 
</script> 

<script type="text/javascript">
  	window.history.go(-1)          /*Volvemos a la pagina del formulario de envio*/
</script> 

</head>

<body>

<?php 
$nombre = $_POST['nombre'];
$telefono=$_POST['telefono'];
$email = $_POST['email'];

$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 = "Este mensaje fue enviado por " . $nombre . " \r\n";
$mensaje .= "Su telefono es: " . $telefono . " \r\n";
$mensaje .= "Su e-mail es: " . $email . " \r\n";
$mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());

$para = '[email protected]';
$asunto = 'AVISO DE LA WEB PCATOPE.ES';

mail($para, $asunto, utf8_decode($mensaje), $header);
?>

</body>
</html>
No se si todo vendra porque tenga mal situadas las funciones del php, la de abrir el popup de mensaje enviado y la de volver a la pagina del formulario...

¿Que puedo hacer para comprobar que en los campos nombre y telefono hay algo antes de enviar y decirle al usuario que los llene y sea entonces cuando los rellene, le de a enviar, salga la ventana de que se ha enviado y vuelva a la pagina del formulario? Llevo toda la tarde desde las 5 intentandolo, leyendo mil posts del foro y nada, no lo consigo...

Muchas gracias y un saludo!!