Comunidad de diseño web y desarrollo en internet online

Duda sobre formulario php

Citar            
MensajeEscrito el 13 Mar 2012 11:48 am
Buenos días, he encontrado un tuto de un formulario php sencillo y efectivo pero al que querría modificar algo que no consigo.
formulario.hmtl:

Código HTML :

<!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" xml:lang="es-es" lang="es-es">

 <head>

  <title>Ejemplo de envío de formulario por email con php</title>

  <meta name="description" content="Formulario de contacto enviado por correo electronico usando php"/>

  </head>

<body>

 <div id="formulario">

  <form action="enviar.php" method="POST">

    Nombre: <input name="nombre" size="40" type="text" />

    Email: <input name="email" size="40" type="text" />

    Asunto: <input name="asunto" size="40" type="text" />
  
    Para: <select name="para">

    <option value="[email protected]">Dpto. de publicidad</option>

    <option value="[email protected]">Dpto. de administracion</option>
    </select>

    Mensaje: <textarea cols="40" rows="6" name="mensaje"></textarea>

    <input name="enviar" type="submit" value="Enviar" />
  </form>
 </div>
</body>
</html>


Fuente: http://www.bloogie.es/tecnologia/programacion/38-como-enviar-un-formulario-por-email-con-php#ixzz1ozqKZeYI
Under Creative Commons License: Attribution Share Alike


Y enviar.php

Código PHP :

<?php

  //variable de validacion

  $valida = true;

  if (empty($_POST['nombre'])) {

    echo "<b>No se especifico nombre</b><br/>";

    $valida = false;

  }

  if (empty($_POST['email'])) {

   echo "<b>No se especifico E - mail</b><br/>";

   $valida = false;

  }

  if (empty($_POST['asunto'])) {

   echo "<b>No se especifico asunto</b><br/>";

   $valida = false;

  }

  if (empty($_POST['mensaje'])) {

   echo "<b>Por favor, no envie un mensaje en blanco</b><br/>";

   $valida = false;

  }

  // Validamos la direccion de correo electronico

  if (!strchr($_POST['email'],"@") || !strchr($_POST['email'],"."))
   {

    echo "<b>No es un correo valido</b><br/>";

    $valida = false;

   }

  // Si las comprobaciones son correctas

  if ($valida == true)

   {

    // Creamos el header para el mensaje

    // para:

    $to = $_POST['para'];

    // Asunto

    $subject = $_POST['asunto'];

    // Cabeceras del mail (Content-Type y demas info)

    $headers = "MIME-Version: 1.0\n";

    $headers .= "Content-type: text/html; charset=utf-8\n";

    // El From: en la forma Nombre <[email protected]>, esto garantiza que

    // el receptor vea solo el nombre de quien envia

    $headers .= "From: ".$_POST['nombre']." <".$_POST['email'].">\n";

    // Opcional: Resopnder a:

    $headers .= "Reply-To: " . $_POST['email']."\n";

    //Opcional X-Mailer

    $headers .= "X-Mailer: PHP/" . phpversion();

    // Cuerpo del email

    $message = $_POST['mensaje'];

    if(mail($to, $subject, $message,$headers))
     {

      echo "<p>Mensaje enviado, Gracias por sus sugerencias.<br /><a href=\"javascript:history.go(-1)\">Volver</a></p>";

     }

   }

?>


Fuente: http://www.bloogie.es/tecnologia/programacion/38-como-enviar-un-formulario-por-email-con-php#ixzz1ozqYVkNO
Under Creative Commons License: Attribution Share Alike


La cuestión es que al dar enviar, si dejas algun campo en blanco salta enviar.php y me gustaría que esos mensajes se cargaran en el campo en el que falta info en formulario.hmtl
Alguien sabe como se podría hacer?
Muchas gracias
saludos

Por eldavi

60 de clabLevel



 

opera
Citar            
MensajeEscrito el 13 Mar 2012 02:28 pm
Se debería validar el formulario con Javascript antes de enviarlo, ya que si aprietas Enviar el formulario automáticamente salta a enviar.php y no se refresca ahí mismo.

Usa Javascript para validar los campos antes de enviarlos.

Por Gidrek

Claber

422 de clabLevel

5 tutoriales

Genero:Masculino  

iOS & Python developer

chrome
Citar            
MensajeEscrito el 13 Mar 2012 03:23 pm
Gracias, ya esta todo comprobado, el problema es que ahora no se como llamar a enviar.php desde la función de validación javascrit...
Muchas gracias
Saludos

Por eldavi

60 de clabLevel



 

opera
Citar            
MensajeEscrito el 13 Mar 2012 03:37 pm
En el HTML debes cambiar el tag <form> a esto:

Código HTML :

<form name="formulario" action="enviar.php" method="POST" onSubmit="return ValidarFormulario(this); ">


Y en JavaScript:

Código Javascript :

function ValidarFormulario(frm) {
var err = false;
/*
   Procesas los campos para validar aquí
*/
if (!err) {
   frm.submit();
}
return false; // esto es importante.
}

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 13 Mar 2012 04:38 pm
Muchas gracias, voy a ver que tal.

Por eldavi

60 de clabLevel



 

opera
Citar            
MensajeEscrito el 02 Jun 2012 07:34 pm
Podrías utilizar html5 :D

algo asi

<!DOCTYPE html>
<head></head>
<body>
<form action="" method="POST">
<input type="text" name="nombre" required/>
<input type="email" name="email" required/>
<input type="password" name="pass" required/>
<input type="submit" name="boton" value="Enviar">
</form>

Listo formualrio validado :D

Por cinder92

11 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.