Foros del Web » Programando para Internet » PHP »

Validacion

Estas en el tema de Validacion en el foro de PHP en Foros del Web. Como hago para validar que una variable sea numero y si no es numero devuelva un error...
  #1 (permalink)  
Antiguo 07/08/2006, 13:40
 
Fecha de Ingreso: julio-2006
Mensajes: 150
Antigüedad: 17 años, 7 meses
Puntos: 0
Validacion

Como hago para validar que una variable sea numero y si no es numero devuelva un error
  #2 (permalink)  
Antiguo 07/08/2006, 13:47
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 2 meses
Puntos: 9
check out is_numeric
  #3 (permalink)  
Antiguo 07/08/2006, 13:53
Avatar de pato_volador  
Fecha de Ingreso: octubre-2005
Ubicación: Planeta tierra
Mensajes: 254
Antigüedad: 18 años, 5 meses
Puntos: 0
Con las siempre fieles expresiones regulares:
Código PHP:
<?php

if (!(ereg("^[[:digit:]]+$"$tu_cadena))){
echo 
'aqui hay algo mas que numeros';
}

?>
Saludos!!
__________________
De todas las cosas que queria ser... :-D acabe siendo un pato volador... :risa:
http://patovolador.wordpress.com
  #4 (permalink)  
Antiguo 07/08/2006, 18:45
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 18 años, 2 meses
Puntos: 5
Cita:
Código PHP:
<?php

if (!(ereg("^[[:digit:]]+$"$tu_cadena))){
echo 
'aqui hay algo mas que numeros';
}

?>
El problema es que los números no siempre son enteros... Pueden tener decimales, o sea, puntos, y signo, por ejemplo. Para lo cual esa expresión regular no te serviría. Sí, también se puede validar eso con expresiones regulares, pero sería un poco tratar de matar una mosca a cañonazos si existe is_numeric(), que es más corto, legible y si no me equivoco, más eficiente.

Suerte
Califa
  #5 (permalink)  
Antiguo 08/08/2006, 08:28
 
Fecha de Ingreso: julio-2006
Mensajes: 150
Antigüedad: 17 años, 7 meses
Puntos: 0
is_integer

Me esta devolviendo el campo en Blanco lo estoy utilizando asi
is_integer(telefono_prov_1) == True
que esta mal de esta sentencia
gracias
  #6 (permalink)  
Antiguo 08/08/2006, 14:40
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 2 meses
Puntos: 9
telefono_prov_1 no es una variable, una contante talvez?
  #7 (permalink)  
Antiguo 08/08/2006, 17:21
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 18 años, 2 meses
Puntos: 5
Cita:
Iniciado por vilagutv7 Ver Mensaje
Me esta devolviendo el campo en Blanco lo estoy utilizando asi
is_integer(telefono_prov_1) == True
que esta mal de esta sentencia
gracias
Buenas, una puede ser que, como te indicaron podría estar faltando el signo $ antes de telefono_prov_1, si es efectivamente una variable.

Otra, haciendo un echo de una expresión que se evalúa como false, muchas veces el resultado es "nada", en vez de "false" o 0 como cabría esperar; más teniendo en cuenta que lo opuesto suele devolver "1" si lo imprimís por pantalla (no sé bien por qué, ni sabría decirte exactamente en qué condiciones; no estoy seguro de que sea en todos los casos, pero es bastante fastidioso).

Y otra cosa, más, is_int() o is_integer() (son la misma función), no se comportan igual que is_numeric. Si el dato que estás verificando es originalmente un string (por ej, llega de un formulario), tenés que usar is_numeric.


http://ar2.php.net/manual/es/function.is-int.php

Cita:
bool is_int ( mixed var )

Encuentra si la variable dada es un entero.

Nota: Para probar si una variable es un número o una cadena numérica (como en el caso de la entrada de un formulario, que es siempre una cadena), debe usar is_numeric().
Suerte
Califa
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 00:24.