Foros del Web » Programando para Internet » PHP »

problema con tipo de dato

Estas en el tema de problema con tipo de dato en el foro de PHP en Foros del Web. saludos ! tengo un problema cuando envio a travez del post unos datos, al resibirlos todas las variables quedan como cadena aunque sean valores enteros ...
  #1 (permalink)  
Antiguo 10/04/2008, 09:54
Avatar de victor666  
Fecha de Ingreso: junio-2007
Mensajes: 39
Antigüedad: 16 años, 9 meses
Puntos: 0
problema con tipo de dato

saludos !
tengo un problema cuando envio a travez del post unos datos, al resibirlos todas las variables quedan como cadena aunque sean valores enteros y nececito validar si son enteros o no, el codigo es el siguiente:
Código PHP:

$a
=$_POST['num1'];
$b=$_POST['num2'];
$c=$_POST['num3'];

if(isset(
$a) && isset($b) && isset($c)){
  
  if(
$a == NULL || $b == NULL || $c == NULL ){
     echo 
"Debe completar los campos del formulario <br>";
  }
  else{
    if(!
is_int($a)){
          echo 
"\"$a\" no es un numero entero es ".gettype($a)." <br>";
          }
    if(!
is_int($b)){
          echo 
"\"$b\" no es un numero entero es ".gettype($b)." <br>";
          }
    if(!
is_int($c)){
          echo 
"\"$c\" no es un numero entero es ".gettype($c)." <br>";
          }
  }

lo que me imprime es:

"5" no es un numero entero es string
"5" no es un numero entero es string
"p" no es un numero entero es string

gracias por cualquier sugerencia..
  #2 (permalink)  
Antiguo 10/04/2008, 10:12
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 3 meses
Puntos: 11
Re: problema con tipo de dato

Hola,
Prueba así:

Código PHP:
$patron '/^\d*$/';
 
$a=$_POST['num1'];
$b=$_POST['num2'];
$c=$_POST['num3'];
 
if(isset(
$a) && isset($b) && isset($c)){
  
  if(
$a == NULL || $b == NULL || $c == NULL ){
     echo 
"Debe completar los campos del formulario <br>";
  }
  else{
    if(!
ereg($patron$a)){
          echo 
"\"$a\" no es un numero entero";
          }
    if(!
ereg($patron$b)){
          echo 
"\"$b\" no es un numero entero";
          }
    if(!
ereg($patron$c)){
          echo 
"\"$c\" no es un numero entero<br>";
          }
  }

Saludos!
  #3 (permalink)  
Antiguo 10/04/2008, 10:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Re: problema con tipo de dato

en ves de is_int usa is_numeric .... o conviertelos pa comparar...

si $a es "2" cuando hagas esto.... $a = (int)$a; lo convierte de tipo a INT ((en este caso))
  #4 (permalink)  
Antiguo 10/04/2008, 10:37
Avatar de victor666  
Fecha de Ingreso: junio-2007
Mensajes: 39
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: problema con tipo de dato

ok gracias..

ya me funciona con is_numeric() pero me deja pasar numeros double
  #5 (permalink)  
Antiguo 10/04/2008, 10:44
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 3 meses
Puntos: 11
Re: problema con tipo de dato

Más arriba te puse otra opción con expresiones regulares donde evalúa si es un entero.-

Me cuentas...
SAludos
  #6 (permalink)  
Antiguo 10/04/2008, 10:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Re: problema con tipo de dato

entonces seria mejor que convierteras el tipo en INT como te detalle.... $a = (int)$foo; convierte el valor de $foo ((puede ser cadena)) en un entero, obviamente no en doble... asi ke para evitar ser controvertido, conviertelos primero...
  #7 (permalink)  
Antiguo 10/04/2008, 11:12
Avatar de victor666  
Fecha de Ingreso: junio-2007
Mensajes: 39
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: problema con tipo de dato

ahhh ok ya entendi 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 07:05.