Foros del Web » Programando para Internet » PHP »

validacion de formulario

Estas en el tema de validacion de formulario en el foro de PHP en Foros del Web. Hola a todos: se que la pregunta es algo boba o simple, pero de antemano agradezco MUCHO la ayuda y la claridad. tengo hechos varios ...
  #1 (permalink)  
Antiguo 16/08/2008, 12:14
 
Fecha de Ingreso: febrero-2007
Mensajes: 62
Antigüedad: 17 años, 2 meses
Puntos: 0
validacion de formulario

Hola a todos:
se que la pregunta es algo boba o simple, pero de antemano agradezco MUCHO la ayuda y la claridad.
tengo hechos varios formularios. Y desde un principio he validao los datos con:
isset ()
Pero no se que paso ayer, duera varios dias sin trabajar en las paginas y ayer cuando fui a hacer unas modificaciones en otra parte del codigo, ya en html apaarte. eso de que probe el form y no me validaba los datos.
en otras palabras por ejemplo tenia nombre y apellido como datos requeridos y solo escribi el nombre y me dejo pasar automaticamente a la pagina de respuesta, en ves de regresarme a la misma del formulario y indicar que faltaba uno de los datos, que es como lo tenia funcionando.
he pensado si tal ves a podido ser algo con la version del WAMP que tengo, ya que la semana pasada la tuve que reinstalar. O la verdad no se que pueda ser para que ahora no me funcione como debe ser. Y lo mas raro de todo es que en otra pagina ahi otro formulario muy sencillo de logeo en el cual si esta funcionando bien.
Si alguien sabe o me puede indicar como se debe validar bien un formulario en php le agradezco.
es wamp server 2.0
Gracias, exitos
Bye
  #2 (permalink)  
Antiguo 16/08/2008, 12:29
Avatar de julianmejio  
Fecha de Ingreso: agosto-2005
Ubicación: Medellín, Antioquia
Mensajes: 88
Antigüedad: 18 años, 7 meses
Puntos: 3
Respuesta: validacion de formulario

Cuando envías el formulario, todos los campos que tengas en él se envpian igualmente, por eso, cuando escribes solo el nombre y no el apellidos, este último se envía (como una cadena en blanco), pero igual queda establecido, así que con el isset() pasa normal. Si quieres validar, puedes probar con esto:

Código PHP:

if(isset($_POST['apellidos']) && $_POST['apellidos'] != "")
{
    
// ...

Espero que te sirva. Así lo hago yo cuando la validación es sencilla, como este caso. Ya si quieres validar más estrictamente, te recomendaría utilizar expresiones regulares.
  #3 (permalink)  
Antiguo 16/08/2008, 12:38
 
Fecha de Ingreso: febrero-2007
Mensajes: 62
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: validacion de formulario

Hola julianmejio, gracias por responder.
bueno he estao buscando en todos los lados posibles como validar formularios y he hecho varias pruebas. (no he probao aun como me has indicado)
Pero si he encontrado foros y blogs donde aconsejan hacer validacion con expressiones regulares. Y eso me genero una duda.
Cual es la mejor forma para validar un formulario bien, sin importar si es un formulario con 2 campos o con 20 campos. El punto es cual es la mejor forma y opcion.
He visto ejemplos donde lo hacen con isset (), con empty (), con if, con expresiones regulares y hasta con trim ().
Viendo los distintos metodos, cual es el mas fiable de todos, mas seguro y que sea certero para validar.
Gracias por la ayuda, nuevamente gracias julianmejio
Bye
  #4 (permalink)  
Antiguo 16/08/2008, 12:50
 
Fecha de Ingreso: febrero-2007
Mensajes: 62
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: validacion de formulario

Hola:
Inclusive acabo de leer este documento, donde mencionan algo sobre envio de datos por el usuario y como tratarlos.
Pero el codigo que veo en el ejmplo no lo entiendo, no que hace cada parte del codigo, lei todo el documento y se cual es la funcion en si, pero no entiendo las diferentes partes del codigo.
Este es el link:
http://www.php.net/manual/es/security.variables.php
Y he estado pensando y creo por lo que he leido que la mejor forma de validar datos de un formulario es con expresiones regulares, pero no estoy seguro.
Agradezco enormemente la guia que me puedan dar con el tema.
  #5 (permalink)  
Antiguo 16/08/2008, 12:52
Avatar de julianmejio  
Fecha de Ingreso: agosto-2005
Ubicación: Medellín, Antioquia
Mensajes: 88
Antigüedad: 18 años, 7 meses
Puntos: 3
Respuesta: validacion de formulario

Bueno, pues depende del dato que vayas a validar: Si es un campo normal, que acepte cuanto caracter conozcas, pues con el isset() y comprobando que la cadena no sea vacía estaría bien, pero por ejemplo, si vas a validar un correo electrónico, la forma más estándar es utilizar expresiones regulares, aunque también puedes encontrar esa misma validación con otra funciones, por ejemplo, antes de que aprendiera a utilizar funciones regulares, tenía que validar los correos usando explode(), y hasta trim() .
Pero en general, cuando se trata de validar datos enviados por un formulario, la mejor manera, en cuanto a performance, rapidez enla implementación y en el mantenimiento, son expresiones regulares. Si las sabes construir bien, puedes evitarte muchos pasos, como el trim() (a menos que el dato del resultado de la función se utilice para otra cosa).
  #6 (permalink)  
Antiguo 16/08/2008, 12:58
Avatar de julianmejio  
Fecha de Ingreso: agosto-2005
Ubicación: Medellín, Antioquia
Mensajes: 88
Antigüedad: 18 años, 7 meses
Puntos: 3
Respuesta: validacion de formulario

Lo que te dicen en este código, es cómo un usuario final puede atacar tu aplicación web si no tienes el suficiente control en el manejo y validación de tus datos. Te lo explico:


Código PHP:
  <?php
// eliminar un archivo del directorio personal del usuario .. ¿o
// quizás de alguien más?


// unlink elimina archivos de tu equipo, y virtualmente, si no tienes el control suficiente, te pueden eliminar archivos críticos, por ejemplo, colocando en la ruta "/etc/archivo/a/eiliminar" (o C:\\Archivo\\a\\eliminar en windows).
unlink ($variable_malvada);

// Imprimir el registro del acceso... ¿o quizás una entrada de /etc/passwd?

// Modificar archivos críticos del sistema, como los .htaccess o los passwords de los directorios protegidos, etc.
fwrite ($desc_archivo$variable_malvada);

// Ejecutar algo trivial.. ¿o rm -rf *?


// y estas dos funciones ejecutan aplicaciones instaldas en el servidor, y por eso, con solo una variable ($variable_malvada) mal manejada, te pueden tumbar todo el sitio, hasta incluso el servidor: 

// exec(/sbin/shutdown); !!!!!!! apagas el servidor (en linux)
system ($variable_malvada);
exec ($variable_malvada);

?>
Y obvio que los permisos que tengas para ejecutar, eliminar, o escribir archivos y aplicaciones del servidor se heredan del usuario que esté ejecutando PHP, y por lo general, este usuario es el mismo root, así que hay que tener cuidado con lo que el usuario pueda enviar a nuestra aplicación web, así sea una inofensiva cadena de texto... ya viste que son esa cadenita (y dependiendo de cómo la uses en la aplicación) puede hacer todo tipo de cosas.
  #7 (permalink)  
Antiguo 16/08/2008, 14:24
 
Fecha de Ingreso: febrero-2007
Mensajes: 62
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: validacion de formulario

Caramba... Julianmejio me has dejado algo pasmado.
En si es uno tener cuidado como programa y que es lo que se quiere hacer.
Pero entonces si esta muy interesante ese articulo.
Bueno ya la cosa esta decidida, entonces la mejor forma para validar son las expresiones regulares. Y bueno las se manejar mas o menos, medio me defiendo un poquito, ya las he usado en un par de ocasiones y bueno en caso dado de duda o algo con las expresiones terminare solicitando guia en el foro.
HOMBRE MUCHAS GRACIAS, GRACIAS, GRACIAS.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:26.