Foros del Web » Programando para Internet » PHP »

asegurarme que una variable pasada por post es un numero entero

Estas en el tema de asegurarme que una variable pasada por post es un numero entero en el foro de PHP en Foros del Web. intento asegurarme que una variable pasada por post es un numero entero y no otra cosa probe con (int) pero no me funciona pongo un ...
  #1 (permalink)  
Antiguo 05/07/2013, 13:03
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
asegurarme que una variable pasada por post es un numero entero

intento asegurarme que una variable pasada por post es un numero entero y no otra cosa probe con (int) pero no me funciona pongo un ejemplo.

Código PHP:
Ver original
  1. $int='12345678901234';
  2. echo (int)$int;

el resultado es este
2147483647
a que es debido esto?
como deberia hacerlo?
Saludos.
  #2 (permalink)  
Antiguo 05/07/2013, 13:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: asegurarme que una variable pasada por post es un numero entero

Prueba con is_numeric o ctype_digit, y la razón que te da eso es porque el entero en PHP es de 32bits, (A menos que uses una versión x64), y ese es el mayor rango que puede soportar (con signo) para 32bits.

Saludos.
  #3 (permalink)  
Antiguo 05/07/2013, 13:49
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: asegurarme que una variable pasada por post es un numero entero

Sera que si pasan el tipo de dato por POST ? por GET seguro que pasan como string y luego se convierte automaticamente.

Creeria que por POST pasa igual........solo es un casting o una conversion automatica
__________________
Salu2!
  #4 (permalink)  
Antiguo 05/07/2013, 14:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: asegurarme que una variable pasada por post es un numero entero

Tanto por POST, o GET es lo mismo @Italico76, el problema es que esta llegando al límite que soporta en 32bits con signo, no se puede hacer mucho más que pasar a un sistema de 64bits... o comparar que la cadena todos los datos sean dígitos (por eso le indique que use is_numeric o ctype_digit). Que es lo que realmente quiere hacer.

Ahora si desea hacer operaciones con ese número, entonces sí va a tener problemas, pero PHP dispone de una extensión para eso: BC Math.

Saludos.
  #5 (permalink)  
Antiguo 06/07/2013, 04:28
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: asegurarme que una variable pasada por post es un numero entero

Hola GatorV, gracias por tu colaboracion me fuistes de mucha ayuda.
Saludos.
  #6 (permalink)  
Antiguo 06/07/2013, 21:23
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: asegurarme que una variable pasada por post es un numero entero

Esto también soluciona la limitación numérica en entornos de 32 bits:
Código PHP:
Ver original
  1. $num = 9223372036854775808;
  2.  
  3. $var = ( is_int($num) || is_float($num) ) ? true : false;
  4.  
  5. var_dump($var);
http://www.php.net/manual/es/function.is-int.php#97006
  #7 (permalink)  
Antiguo 06/07/2013, 21:30
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: asegurarme que una variable pasada por post es un numero entero

Cita:
Iniciado por metacortex Ver Mensaje
Esto también soluciona la limitación numérica en entornos de 32 bits:
Código PHP:
Ver original
  1. $num = 9223372036854775808;
  2.  
  3. $var = ( is_int($num) || is_float($num) ) ? true : false;
  4.  
  5. var_dump($var);
http://www.php.net/manual/es/function.is-int.php#97006
Eso solo devuelve TRUE / FALSE y es lo mismo que:

Cita:
$var = ( is_int($num) || is_float($num);
__________________
Salu2!
  #8 (permalink)  
Antiguo 06/07/2013, 22:07
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: asegurarme que una variable pasada por post es un numero entero

Cita:
Iniciado por Italico76 Ver Mensaje
Eso solo devuelve TRUE / FALSE y es lo mismo que:
Fue un ejemplo para probar que funciona. Cuestión de aplicarlo al ejemplo original:

Código PHP:
Ver original
  1. $var = ( is_int($_POST['algo']) || is_float($_POST['algo']) ) ? 'función que envía los datos' : 'función que retorna al formulario e informa el error al usuario';

Etiquetas: entero, numero, post, variable
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:24.