Foros del Web » Programando para Internet » PHP »

Validacion de Fechas desde el Servidor

Estas en el tema de Validacion de Fechas desde el Servidor en el foro de PHP en Foros del Web. He buscado por media hora y no he encontrado lo que necesito: Tengo un formulario el cual ya tiene una validación muy basica en el ...
  #1 (permalink)  
Antiguo 26/06/2007, 16:52
daz
 
Fecha de Ingreso: julio-2001
Ubicación: Bogota
Mensajes: 341
Antigüedad: 23 años, 4 meses
Puntos: 4
Validacion de Fechas desde el Servidor

He buscado por media hora y no he encontrado lo que necesito:
Tengo un formulario el cual ya tiene una validación muy basica en el servidor:
Pero el campo fecha:
dd/mm/aaaa

debe llevar exactamente esa estructura como puedo asegurarme que se incluyan los datos que necesito, esto para luego convertirlos a formato de mysql y poderlo ingresar a la bd sin problema.

Tambien quiero validar los campos como documento, el cual debe llevar solo numeros, lo unico que estoy validando por ahora es que no quede vacio, pero igual el usuario puede ingresar "asdffdadfsadfs" y es valido.


Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 26/06/2007, 17:04
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 3 meses
Puntos: 2114
Re: Validacion de Fechas desde el Servidor

Puedes usar la función ereg() y expresiones regulares para comprobar que solo sean números lo que se ingresa.
Si no sabes usarlo te escribo un ejemplo.
  #3 (permalink)  
Antiguo 26/06/2007, 19:14
 
Fecha de Ingreso: febrero-2003
Ubicación: Santiago
Mensajes: 220
Antigüedad: 21 años, 9 meses
Puntos: 4
Re: Validacion de Fechas desde el Servidor

Hola daz!

Para los numeros puedes hacerlo mediante el servidor o mediante JavaScript (lado cliente)

Como estamos en el foro PHP lo veremos en PHP xD

Para validar si una variable , o elemento de arreglo es un numero, debes usar la funcion is_numeric()

Por ejemplo
Código PHP:
$algo "1234d";
if (
is_numeric($algo)) { echo "Es numero!"; }
else { echo 
"no es numero :("; } 
En cuanto a esa funcion cualquier duda la haces en este mismo topico ;)

En cuanto a la fecha, la estas ingresando mediante campo de texto o elementos <select> ?

Saludos.
__________________
Roberto Osses Elgueta
Senior Web Developer
  #4 (permalink)  
Antiguo 26/06/2007, 20:09
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 3 meses
Puntos: 70
De acuerdo Re: Validacion de Fechas desde el Servidor

Hola daz!

Si te complicas menos y lo haces mediante select's??. Un select con el día, otro con el mes y otro con el año??. Creo que esa es la mejor manera!!

Tú después en tu php, lo acomodas no?? y listo!

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #5 (permalink)  
Antiguo 27/06/2007, 07:37
 
Fecha de Ingreso: junio-2007
Mensajes: 7
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: Validacion de Fechas desde el Servidor

hola es alejandro de venezuela, yo diria que es mejor usar javascript para las validaciones, ya que no creo conveniente dejarle al servidor todo el trabajo de validacion de datos por pocos que sean, es mejor dejarle el trabajo al server para lo que es.
  #6 (permalink)  
Antiguo 27/06/2007, 09:25
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 3 meses
Puntos: 70
De acuerdo Re: Validacion de Fechas desde el Servidor

Hola aljvilla!!

Según tú??, "para qué es el server"??.

No hay mejor manera de validar que no sea mediante el servidor, la validación por medio javascript no es 100% segura, si te desactivan javascript??, se cayó tu validación!!!

Siempre va la validación por medio del servidor es necesaria, que tú ya quieras hacerla por javascript...., ya es cuestión tuya..., pero la validación por medio del servidor no debe faltar!!!

Saludos!
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #7 (permalink)  
Antiguo 27/06/2007, 10:15
 
Fecha de Ingreso: octubre-2006
Mensajes: 42
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: Validacion de Fechas desde el Servidor

En principio yo haria lo que ha dicho Bonez con expresiones regulares:

Código PHP:
if (ereg("^[0-9]{1,2}/[0-9]{1,2}/[0-0]{4}$",$fecha)){ 
        
//Fecha valida
}else {
       
//Fecha no valida

"^[0-9]{1,2}/[0-9]{1,2}/[0-0]{4}$" esta cadena básicamente dice que tiene que empezar por uno o dos dígitos de 0 a 9 luego / uno o dos digitos luego / y cuatro digitos.
Creo que la expresión regular es correcta, si no es así que alguien lo diga :P

En caso de que quisieras comprobar la fecha numéricamente yo haría lo anterior y algo como:
Código PHP:
list($dia$mes$ano) = explode("/"$fecha);
if (
checkdate($mes,$dia,$ano)){
       
//Fecha correcta
}else{
       
//Fecha incorrecta

Que comprueba años bisiestos, si los meses tienen 31 días y todo eso.

También para comprobar si las fechas son mayores o menores tienes las funciones de marcas de tiempo en php, como mktime()
Código PHP:
if(mktime(23,59,59,$mes,$dia,$ano)<mktime()){
       
//La fecha ya ha pasado
}else{
       
//La fecha es futura

En realidad todas las funciones de php con las fechas dan mucho juego.
  #8 (permalink)  
Antiguo 28/06/2007, 10:19
daz
 
Fecha de Ingreso: julio-2001
Ubicación: Bogota
Mensajes: 341
Antigüedad: 23 años, 4 meses
Puntos: 4
Re: Validacion de Fechas desde el Servidor

Gracias Neihs, eso era lo que estaba buscando.
  #9 (permalink)  
Antiguo 28/06/2007, 10:31
daz
 
Fecha de Ingreso: julio-2001
Ubicación: Bogota
Mensajes: 341
Antigüedad: 23 años, 4 meses
Puntos: 4
Re: Validacion de Fechas desde el Servidor

Una pequeña correccion por si tomas este codigo de ejemplo, los parametros finales son [0-9]{4}

Cita:
if (ereg("^[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}$",$fecha)){
//Fecha valida
}else {
//Fecha no valida
}
  #10 (permalink)  
Antiguo 29/06/2007, 03:03
 
Fecha de Ingreso: octubre-2006
Mensajes: 42
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: Validacion de Fechas desde el Servidor

Si, se coló el 0. jeje
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 14:11.