Foros del Web » Programando para Internet » PHP »

Problemas con is_string

Estas en el tema de Problemas con is_string en el foro de PHP en Foros del Web. Hola amigos, tengo el siguiente inconveniente: si vengo de un <input type=text name=revision> y en la siguiente pagina lo tomo como: $_POST['revision'] y este es ...
  #1 (permalink)  
Antiguo 17/08/2010, 13:12
 
Fecha de Ingreso: junio-2010
Mensajes: 43
Antigüedad: 13 años, 10 meses
Puntos: 0
Problemas con is_string

Hola amigos,

tengo el siguiente inconveniente:

si vengo de un <input type=text name=revision>
y en la siguiente pagina lo tomo como:
$_POST['revision'] y este es numerico me lo toma como string.

entonces verifico:

$rev=$_POST['revision'];
if (is_string($rev))
{
echo "cadena";
}


pero resulta ser que era un numero!!!
porque entra igual al IF ???

Gracias!
  #2 (permalink)  
Antiguo 17/08/2010, 13:17
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Problemas con is_string

por que el valor te llega como "105" .. para eso existen las funciones ctype
revisa www.php.net/ctype_digit

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 17/08/2010, 13:19
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Problemas con is_string

$rev=$_POST['revision'];
$rev=is_string($rev)
if ($rev)
{
echo $rev;
}

edito: me equiviqué perdon
__________________
la la la
  #4 (permalink)  
Antiguo 17/08/2010, 13:21
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 2 meses
Puntos: 10
Respuesta: Problemas con is_string

porque:

por default todas las variables recibidas por POST/GET son de tipo cadena, recuerda que en PHP los tipos de dato son cambiantes, es decir puedes hacer:

Código PHP:
Ver original
  1. $num='34';
  2.  
  3. $num=$num*3;
  4.  
  5. $num=$num.'4';
  6.  
  7. $num=$num-40;
  8.  
  9. echo $num;

en ese ejemplo se usa, de forma correcta, la variable $num como número y como cadena.

verifica la documentación de is_string, ahí mismo se comenta lo que te menciono, también deberías considerar la función is_numeric y hacer algo como esto:

Código PHP:
Ver original
  1. $rev=$_POST['revision'];
  2. if (is_string($rev)&&!is_numeric($rev))
  3. {
  4. echo "cadena";
  5. }

aunque también tiene sus inconvenientes. También queda la opción de las REGEXP.
  #5 (permalink)  
Antiguo 17/08/2010, 13:29
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Problemas con is_string

o ctype_digit ? :(
__________________
More about me...
~ @rhyudek1
~ Github
  #6 (permalink)  
Antiguo 17/08/2010, 13:50
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 2 meses
Puntos: 10
Respuesta: Problemas con is_string

Cita:
Iniciado por Hidek1 Ver Mensaje
o ctype_digit ? :(
Sí, creo que un !ctype_digit sería la opción ideal (sorry Hidek1, cuando escribí mi respuesta aún no había otras respuestas )

Etiquetas: Ninguno
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 01:29.