elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Validación de formulario y envió de datos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Validación de formulario y envió de datos  (Leído 2,109 veces)
gabrielbdmr

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Validación de formulario y envió de datos
« en: 3 Agosto 2016, 21:50 pm »

Buen día con todos, tengo un problema con el siguiente formulario, pasa que cuando solo lleno los campos que no requieren validación, e intento mandar el formulario, alerta los campos requeridos pero se borra la información de los campos llenados, igualmente si lleno todo el formulario, realiza el envió y la inserción en mysql pero solo de los campos validados, agradecería vuestra ayuda para encontrar y corregir el error o una solución alternativa

tome como base el formulario de

http://www.w3schools.com/php/showphp.asp?filename=demo_form_validation_complete



Código:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Formulario de Contacto</title>


</head>

<body>


<div class="formulario_imc">

<?php

// define variables and set to empty values
$apellido = $nombre = $telefono = $email = $distrito = $objetivo = $mensaje = $form_ok = "";
$telefono_Err = $email_Err = "";
$telefonoclass = $email_class = "";


if ($_SERVER["REQUEST_METHOD"] == "POST") {

$form_ok = TRUE; //verifica que el formulario esta ok


if (empty($_POST["telefono"])) {
$telefono_Err = "Ingresa tu número telefónico";
$telefono_class = "has-error";
$form_ok = FALSE;
} else {  
$telefono = test_input($_POST["telefono"]);
// check if phone only contains numbers
if (!preg_match("/^[0-9]*$/",$telefono)) {
$telefono_Err = "Solo se permiten números";
$telefono_class = "has-error";
$form_ok = FALSE;
}
}
   
   
    if (empty($_POST["email"])) {
$emailErr = "Ingresa tu email";
$email_class = "has-error";
$form_ok = FALSE;
} else {
$email = test_input($_POST["email"]);
// check if e-mail address is well-formed
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Ingresa un correo válido";
$email_class = "has-error";
$form_ok = FALSE;
}
}
 
 
 
  if (empty($_POST["apellido"])) {
$apellido = "";
} else {
$apellido = test_input($_POST["apellido"]);
}
 
  if (empty($_POST["nombre"])) {
$nombre = "";
} else {
$nombre = test_input($_POST["nombre"]);
}

if (empty($_POST["distrito"])) {
$distrito = "";
} else {
$distrito = test_input($_POST["distrito"]);
}

if (empty($_POST["objetivo"])) {
$objetivo = "";
} else {
$objetivo = test_input($_POST["objetivo"]);
}

if (empty($_POST["mensaje"])) {
$mensaje = "";
} else {
$mensaje = test_input($_POST["mensaje"]);
}



}

function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;

}



//despues de verificar el contenido del formulario
if($form_ok) {


$to_in = "info@miweb.com";

$subject_in = "Nuevo Cliente registrado:".$apellido.", ".$nombre." (".$email.") " ;

$message_in = "

<html>

<html>
<head>
<title>Nuevo Cliente registrado</title>

<style>

table, tr, th, td {
border: 1px;
}

th {
background:#000;
color:#FFF;
}

table {
width:100%;
}


</style>

</head>
<body>

<table>

<tr>
<th>Categoría</th>
<th>Apellidos y nombre</th>
<th>Teléfono</th>
<th>Email</th>
<th>Distrito</th>
<th>Objetivo</th>
</tr>
<tr>
<td>".$categoria."</td>
<td>".$apellido.",".$nombre."</td>
<td>".$telefono."</td>
<td>".$email."</td>
<td>".$distrito."</td>
<td>".$objetivo."</td>

</tr>

</table>
<table>

<tr>
<th>Mensaje</th>
</tr>
<tr>
<td>".$mensaje."</td>
</tr>

</table>
</body>
</html>

";

$subject_out .= "Confirmación de recepción de mensaje" ;

$message_out .= "

<html>

<head>
<title>Confirmación de recepción de mensaje</title>
</head>

<body>

<p><strong>Confirmación de recepción de mensaje</strong></p>

<p>Hemos recibido tu mensaje, nos comunicaremos contigo en un plazo máximo de 48 horas.</p>

<p></p>

<p>Atentamente</p>


</body>

</html>

" ;



$headers_in = "MIME-Version: 1.0" . "\r\n";
$headers_in .= 'From: web Server <miweb@miweb.com>' . "\r\n" ;
$headers_in .= "Content-type:text/html;charset=UTF-8" . "\r\n";

$headers_out = "MIME-Version: 1.0" . "\r\n";
$headers_out .= 'From: web <info@miweb.com> ' . "\r\n" ;
    $headers_out .= 'Reply-To: info@miweb.com' . "\r\n";
$headers_out .= "Content-type:text/html;charset=UTF-8" . "\r\n";



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


$mail_in = mail($to_in,'=?utf-8?B?'.base64_encode($subject_in).'?=',$message_in,$headers_in);

$mail_out= mail ($email,'=?utf-8?B?'.base64_encode($subject_out).'?=',$message_out,$headers_out);



if ($mail_in) {

require("../admin/settings.php");

$categoria=$_POST['categoria'];
$apellido=$_POST['apellido'];
$nombre=$_POST['nombre'];
$telefono=$_POST['telefono'];
$email=$_POST['email'];
$distrito=$_POST['distrito'];
$objetivo=$_POST['objetivo'];
$mensaje=$_POST['mensaje'];
$opcion_1="no_determinado";
$opcion_2="no_determinado";
$fecha_registro=$_POST['fecha_registro'];
$fecha_contacto="";

$insertar= "INSERT INTO contactos (

categoria,
apellido,
nombre,
telefono,
email,
distrito,
objetivo,
mensaje,
opcion_1,
opcion_2,
fecha_registro,
fecha_contacto

)

VALUES (
'$categoria',
'$apellido',
'$nombre',
'$telefono',
'$email',
'$distrito',
'$objetivo',
'$mensaje',
'$opcion_1',
'$opcion_2',
'$fecha_registro',
'$fecha_contacto'

)";


if (mysqli_query($conn, $insertar)) {
   //echo "Registro creado con éxito";
} else {
echo "Error: " . $insertar . "<br>" . mysqli_error($conn);
}

mysqli_close ($conn);


?>

<div class="email_table">
                            <div class="email_table_cell">
                                <p><span class="btn btn-success">Registro completado</span></p>
                                <p>Se enviaron los datos satisfactoriamente, muy pronto nos pondremos en contacto contigo!</p>
                            </div>
                        </div>
                       
     
<?php


}} else { {

?>
                       
  <p>Solicita mayor información y con gusto te responderemos.</p>
               
               
                <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post" enctype="multipart/form-data" name="calculadora_imc">
   
                    <div class="form-group">
                            <label for="apellido">Apellido</label>
                            <input type="text" class="form-control input-sm" nombre="apellido" id="apellido" placeholder="Apellido" value="<?php echo $apellido;?>" >
                            </div>
                           
                            <div class="form-group">
                            <label for="nombre">Nombre</label>
                            <input type="text" class="form-control input-sm" nombre="nombre" id="nombre" placeholder="Nombre" value="<?php echo $nombre;?>" >
                            </div>
     
                                         
                            <div class="form-group <?php echo $telefono_class;?>">                                                                   
                            <label for="telefono">Telefono</label> <span class="error"> * <?php echo $telefono_Err;?></span>
                            <input type="text" class="form-control input-sm has-error" name="telefono" id="telefono" placeholder="Telefono" value="<?php echo $telefono;?>">
                            </div> 
                           
                            <div class="form-group <?php echo $email_class;?>">                                                                   
                            <label for="email">Email</label> <span class="error"> * <?php echo $email_Err;?></span>
                            <input type="text" class="form-control input-sm has-error" name="email" id="email" placeholder="Email" value="<?php echo $email;?>">
                            </div>
                           
                            <div class="form-group">
                            <label for="distrito">Distrito</label>                           
                            <input type="text" class="form-control input-sm" nombre="distrito" id="distrito" placeholder="Distrito" value="<?php echo $distrito;?>" >
                            </div> 
                           
                            <div class="form-group">
                           <label for="objetivo">Objetivo</label>
                           <select class="form-control input-sm" nombre="objetivo" id="objetivo" >
                              <option value="<?php echo $objetivo;?>" selected><?php echo $objetivo;?></option>
                              <option value="Reducción de grasa corporal">Reducción de grasa corporal</option>
                              <option value="Aumento de masa muscular">Aumento de masa muscular</option>
                              <option value="Tonificación">Tonificación</option>
                              <option value="Mejora de energía">Mejora de energía</option>
                              <option value="Bienestar físico y emocional">Bienestar físico y emocional</option>
                              <option value="Coordinación">Coordinación</option>
                              <option value="Otros">Otros</option>
                            </select>
                            </div>
                           
                            <div class="form-group">
                            <label for="mensaje">Mensaje</label>
                            <textarea class="form-control input-sm " nombre="mensaje" id="mensaje" placeholder="Mensaje" rows="3"><?php echo $mensaje;?></textarea>
                            </div>   
                           
                                                     
                            <p><span class="error"> * Datos mínimos requeridos</span></p>                           
                                                       
                            <input class="btn btn-primary btn-sm" type="submit" name="enviar" id="enviar" value="Enviar"/>
                           
                            <input id="categoria" name="categoria" type="hidden" value="Cliente" >
                           
                            <input id="fecha_registro" name="fecha_registro" type="hidden" value="<?php echo date("Y-m-d")?>">                         

                           
                                           
            </form>
         
                   
                   
                    <?php

} }//end of else block

?>
                   
                   
   
</div>




</body>
</html>



En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[mod] validación de tipos de datos en un formulario
Java
Azulf 6 6,301 Último mensaje 7 Junio 2007, 15:23 pm
por »~^~«CkNU!»~^~«
validacion formulario
Desarrollo Web
marcelo3d 8 4,591 Último mensaje 2 Noviembre 2011, 17:28 pm
por Mr. Crowley
Validacion de envio y recepcion via ftp con bat
Scripting
dj kuzmar 1 3,068 Último mensaje 22 Febrero 2012, 05:52 am
por Eleкtro
Validación formulario Ajax
Desarrollo Web
gpinyol10 1 1,619 Último mensaje 11 Abril 2016, 17:08 pm
por Gallu
Necesito ayuda con la captación de datos por formulario y envío a correo eléctronico
Desarrollo Web
emperie 2 3,968 Último mensaje 4 Julio 2022, 05:32 am
por Agente Naranja
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines