Foros del Web » Programando para Internet » PHP »

como validar una entrada que solo me acepte caracteres numericos?

Estas en el tema de como validar una entrada que solo me acepte caracteres numericos? en el foro de PHP en Foros del Web. Tengo un error al validar que la entrada en un campo solo sea numerico no quiero hacerla por javascript sino por el lado del servidor ...
  #1 (permalink)  
Antiguo 26/02/2009, 19:55
Avatar de jpunk  
Fecha de Ingreso: octubre-2005
Ubicación: Bogota
Mensajes: 335
Antigüedad: 19 años, 1 mes
Puntos: 0
como validar una entrada que solo me acepte caracteres numericos?

Tengo un error al validar que la entrada en un campo solo sea numerico no quiero hacerla por javascript sino por el lado del servidor
estoy usando expresiones regulares y aunque se que es simple no tengo buenos resultados


$numero = trim($_POST['numero']);
// $numero=(int)$_POST['numero'];


if(ereg("[0-9]", $numero) & ereg("[^a-zA-Z]", $numero)){
echo 'este numero cumple<br />';
}else{
echo 'este no cumple<br />';
}

esto funciona si digito un numero ejemplo el 2
tambien funciona si digito solo string por decir una cadena: aeiou

pero me falla si digito numeros y cadenas no importa el orden
sea: abc123 o 123abc no me los deberia aceptar

tampoco a forzar un tipo, que me capture solo el numero es lo que busco
la idea es por decir validar un nombre: solo deben ser caracteres y no permitir guion numeros o caracteres especial

diferente si fuera nombre de usuario ahi si se permite eso.


Gracias de antemano
  #2 (permalink)  
Antiguo 26/02/2009, 20:01
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 22 años, 5 meses
Puntos: 35
Respuesta: como validar una entrada que solo me acepte caracteres numericos?

Busca sobre las funciones ctype: ctype_digit, ctype_alpha. (diculpa por no poner enlaces, ando con algo de prisa)

La otra, la expresion regular seria:
Código php:
Ver original
  1. if (preg_match('@([0-9]+|[a-z]+)@i', $numero)) {
  2. ...
  3. }
Tampoco la he probado, pero si no sirve al menos te da una idea. Por cierto, el operador de AND es &&, con un solo & estas haciendo una operación binaria. Pero en este caso me parece que buscas (o necesitas, mejor dicho) un OR o ||

Saludos
__________________
Sin Ideas
  #3 (permalink)  
Antiguo 26/02/2009, 20:01
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 17 años
Puntos: 18
Respuesta: como validar una entrada que solo me acepte caracteres numericos?

utiliza is_numeric, para más información
además ereg ya esobsoleto en php 5.3, deberías de utilizar preg_match, si es que quieres hacer una expresión regular.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #4 (permalink)  
Antiguo 26/02/2009, 20:06
Avatar de bLEx  
Fecha de Ingreso: mayo-2008
Ubicación: Villa Alemana, Chile
Mensajes: 181
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: como validar una entrada que solo me acepte caracteres numericos?

con el is_numeric seria algo asi....

Código PHP:

$numero
$_POST['numero'];

if(!
is_numeric($numero)){

  echo 
"ERROR!! Ingrese solo numeros!";

}else{

  echo 
"Nice!";


  #5 (permalink)  
Antiguo 26/02/2009, 20:18
Avatar de jpunk  
Fecha de Ingreso: octubre-2005
Ubicación: Bogota
Mensajes: 335
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: como validar una entrada que solo me acepte caracteres numericos?

Gracias bLEx al comienzo use fue:

is_integer($numero)

pero cuando digitaba cero no me pasaba nada y luego use esas funcion que ya no se usa, no pense que fuera tan simple.

Gracias por responder tan pronto, sacare tiempo para revisar cada opcion que me diero.
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 12:13.