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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Problema con validaciones de formulario en PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con validaciones de formulario en PHP  (Leído 3,552 veces)
oscarj24

Desconectado Desconectado

Mensajes: 65


Ver Perfil
Problema con validaciones de formulario en PHP
« en: 9 Junio 2010, 16:29 pm »

El formulario consiste en almacenar los datos en la DB. El problema es que las validaciones de PHP no funcionan y nose porque. El formulario es como esta imagen:

TODOS LOS CAMPOS SON REQUERIDOS:
http://img405.imageshack.us/i/form01d.jpg

PERO, SI EL USUARIO SELECCIONA EN INDEPENDIENTE, EN BOLETA Y UN TIPO DE TELF. LOS DATOS DEBEN SER REQUERIDOS.
http://img405.imageshack.us/i/form02.jpg

intente validarlo en php pero no me resulta (como lo dije en un post anterior), sin embargo en javascript ya esta hecho pero como se sabe, el usuario puede deshabilitar el javascript y es por eso que la validacion php se require.

Código
  1. <?php
  2. if (isset($_POST['enviar'])){
  3. $link = mysql_connect('localhost', 'user', 'pwd');
  4. mysql_select_db('dbname', $link);
  5. $sql = "SELECT MAX(ID) FROM inscripciones";
  6. $result = mysql_query($sql);
  7. $row = mysql_fetch_row($result);
  8. $max_id = $row[0]+1;
  9. $nombres=trim($_POST['nombres']);
  10. $apellidos=trim($_POST['apellidos']);
  11. $DNI_CarneExtranjeria=trim($_POST['DNI_CarneExtranjeria']);
  12. $tipo_persona=trim($_POST['tipo_persona']);
  13. $empresa=trim($_POST['empresa']);
  14. $cargo=trim($_POST['cargo']);
  15. $direccion=trim($_POST['direccion']);
  16. $telefono_fijo=trim($_POST['telefono_fijo']);
  17. $telefono_celular=trim($_POST['telefono_celular']);
  18. $tipo_combrobante=trim($_POST['tipo_comprobante']);
  19. $razon_social=trim($_POST['razon_social']);
  20. $RUC=trim($_POST['RUC']);
  21. $_FILES['voucher']['name'] = $max_id."_".$_FILES['voucher']['name'];
  22. $upload_dir = '/home/netline/public_html/inscripciones/vouchers/';
  23. $extension = $_FILES['voucher']['type'];
  24. $size = $_FILES['voucher']['size'];
  25. $upload_file = $upload_dir.($_FILES['voucher']['name']);
  26. $voucher_nombre_db = $_FILES['voucher']['name'];
  27. if(empty($nombres) && empty($apellidos) && empty($DNI_CarneExtranjeria) && ($tipo_persona == 'Dependiente' && (empty($empresa) || empty($cargo) || empty($direccion))) &&(empty($telefono_fijo) || empty($telefono_celular)) && ($tipo_comprobante == 'Factura' && (empty($razon_social) || empty($RUC))) && empty($voucher_nombre_db) && $extension != 'image/jpeg' && $size > 204801){
  28. echo '<html>
  29. <head>
  30. <title>Titulo web</title>
  31. <META http-equiv="refresh" content="6; url=http://www.dominio.com/inscripciones/inscripcion.php">
  32. </head>
  33. <body>
  34. <p>Debe completar todos los datos obligatorios y adjuntar una imagen con extension .JPG y de 200KB de tamaño maximo.</p>
  35. </body>
  36. </html>';
  37. }else{
  38. move_uploaded_file($_FILES['voucher']['tmp_name'], $upload_file);
  39. mysql_query("INSERT INTO inscripciones(Nombres,Apellidos,DNI_CarneExtranjeria,Tipo_Persona,Empresa,Cargo,Direccion,Telefono_Fijo,Telefono_Celular,Tipo_Comprobante,Razon_Social,RUC,Nombre_Voucher) VALUES('$nombres','$apellidos','$DNI_CarneExtranjeria','$tipo_persona','$empresa','$cargo','$direccion','$telefono_fijo','$telefono_celular','$tipo_comprobante','$razon_social','$RUC','$voucher_nombre_db')",$link);
  40. mysql_close($link);
  41. echo '<html>
  42.         <head>
  43.         <title>Titulo web</title>
  44.         <META http-equiv="refresh" content="6; url=http://www.dominio.com/inscripciones/inscripcion.php">
  45.         </head>
  46.         <body>
  47.         <p>Registro exitoso.</p>
  48.         </body>
  49.         </html>';
  50. }
  51. }
  52. ?>

el if de mi archivo php lo explicare de la siguiente forma:

Si nombres esta vacio, apellidos esta vacio, tipo persona es dependiente (y empresa, cargo, direccion estan vacios) y (telefono fijo esta vacio o telefono celular esta vacio - ya que siempre debe haber un telf.) y tipo de comprobante igual a factura (y razon social y ruc estan vacios) y voucher esta vacio y es diferente a jpg y es mayor a 200kb ENTONCES se muestra mensaje de error.

De lo contrario subir el archivo y los datos. Espero me puedan ayudar con la validacion, gracias  ::)


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Problema con validaciones de formulario en PHP
« Respuesta #1 en: 9 Junio 2010, 19:58 pm »

Yo, siendo tú, intentaría validar antes de enviar los datos al archivo que valida.
Código: :http://www.desarrolloweb.com/articulos/validar-campo-texto-ajax-php.html
PoC: :http://www.desarrolloweb.com/articulos/ejemplos/ajax/xajax/comprobacion-formulario-online.php


En línea

Te vendería mi talento por poder dormir tranquilo.
bomba1990


Desconectado Desconectado

Mensajes: 395



Ver Perfil WWW
Re: Problema con validaciones de formulario en PHP
« Respuesta #2 en: 9 Junio 2010, 20:06 pm »

bueno creo que en el post anterior ya te lo dijeron y como que no quieres pararles mucho. Primero tienes que comprobar que la variable que te estan mandando existe, sino te puede dar error.

Código
  1. isset($_POST[mi variable])

despues de que sepas que está, usas la funcion preg_macth y con ello averiguas si cumple lo que necesitas. ademas deberias dejas las funciones de javascript para que se vea mas bonito y mas agradable para el usuario normal qu eno va a desabilitar las javascript.

las imagenes no se ven...
En línea

"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve
oscarj24

Desconectado Desconectado

Mensajes: 65


Ver Perfil
Re: Problema con validaciones de formulario en PHP
« Respuesta #3 en: 9 Junio 2010, 20:35 pm »

gracias por interesarse, pero es que la variable si existe, el problema es que nose porque no se valida, no entiendo donde esta mi defecto en el codigo,gracias  :)
En línea

bomba1990


Desconectado Desconectado

Mensajes: 395



Ver Perfil WWW
Re: Problema con validaciones de formulario en PHP
« Respuesta #4 en: 11 Junio 2010, 18:38 pm »

te explico, que creo que lo que pasa, es que cuando tu tienes tu formulario y se envia vacio, las variables no se crean en $_POST. no se mandan.
En línea

"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve
Pazador

Desconectado Desconectado

Mensajes: 39



Ver Perfil
Re: Problema con validaciones de formulario en PHP
« Respuesta #5 en: 12 Junio 2010, 07:38 am »

si te fijas bien lo que haces despues de comprobar que hayan pulsado el submit es conectarte a la db, hacer una query, extraer el resultado, declarar las variables sin antes haber comprobado que esten vacios, crear rutas para las img... y despues que php haga todo ese proceso, recien al final se te ocurre validar las variables de entrada... porque no lo haces al revez y le ahorras procesos a php (ademas es lo mas optimo)
luego de la condicion del submit deberias comprobar si las variables estan vacias o no y despues de ello recien tendrias que hacer todo el proceso que quieres hacer

Código
  1. if (isset($_POST['enviar'])){
  2.    if(isset($_POST['nombres']) && strlen(trim($_POST['nombres']))== 0)
  3.        echo 'Error escribe tu nombre';
  4.    elseif(isset($_POST['apellidos']) && strlen(trim($_POST['apellidos']))== 0)
  5.        echo 'Error escribe tu apellido';
  6.    /*
  7.     ..
  8.     ....
  9.     ......
  10.     ..........
  11.     ................
  12.     */
  13.    else{
  14.        $link = mysql_connect('localhost', 'user', 'pwd');
  15. mysql_select_db('dbname', $link);
  16.        /*
  17.         ..
  18.         ....
  19.         ......
  20.         ..........
  21.         ................
  22.         */
  23.    }
  24. }
  25.  

asi se veria mas bonito  :rolleyes:
« Última modificación: 12 Junio 2010, 07:46 am por Pazador » En línea

La vida es un juego
Mario Bross
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
validaciones en textbox
.NET (C#, VB.NET, ASP)
basickdagger 3 4,271 Último mensaje 13 Septiembre 2011, 18:44 pm
por basickdagger
Ayuda con Validaciones
.NET (C#, VB.NET, ASP)
tukubanitorico 0 1,680 Último mensaje 5 Marzo 2012, 20:26 pm
por tukubanitorico
Problema con validaciones
Programación C/C++
ZedGe 2 2,163 Último mensaje 9 Diciembre 2012, 07:44 am
por rir3760
Validaciones 2 digitos en c++
Programación C/C++
socram7 3 2,619 Último mensaje 13 Junio 2013, 23:24 pm
por pacoperico
Validaciones TextBox
Programación Visual Basic
MC.cover 2 2,181 Último mensaje 6 Noviembre 2016, 01:49 am
por MC.cover
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines