[SOLUCIONADO] ¿$_POST devuelve los valores siempre en string?

Iniciado por Ematador, Mayo 17, 2011, 02:07:47 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Mayo 17, 2011, 02:07:47 AM Ultima modificación: Febrero 04, 2015, 10:12:06 PM por Expermicid
Bueno estoy haciendo el ejercicio de la unidad I y cuando quiero saber el tipo de variable de un numero que envié anteriormente siempre me dice que es string (aunque sea un integer).

Código: php
<html>
<head> <title> EJERCICIOS </title> </head>
<form action="" method="POST">
Ingrese un numero: <input type="text" name="numero"><br>
<input type="submit" name="enviar" value="Enviar"> </form>
<?php
if(isset($_POST['enviar'])) {
$numero=$_POST['numero'];
echo gettype($numero);
} ?>
</html>


Ahí el código, capaz estoy haciendo algo mal, pero $numero siempre es string.

Mayo 17, 2011, 04:28:05 PM #1 Ultima modificación: Mayo 17, 2011, 05:33:26 PM por Leinad5991
siempre cuando haces get o post es string pero en el momento que hagas una suma resta etc.. se convierte automaticamente en un int vamos un numero. Esta es una de las cosas buenas de php no tienes que hacer las conversiones eternas entre string y integer. Aunque creo que si modificas
<html>
<head> <title> EJERCICIOS </title> </head>
<form action="" method="POST">
Ingrese un numero: <input type="esto" name="numero"><br>
<input type="submit" name="enviar" value="Enviar"> </form>
por number o algo por el estilo deberia solo coguer numeros
HAPPY HACKING

Como dice leinad, cuando pasas por GET o POST siempre es string, más sin embargo cuando es procesado se puede utilizar la función is_numeric() (la dije en la unidad I) para comprobar que realmente sea un número, ejemplo:

Código: php

<html>
<head> <title> EJERCICIOS </title> </head>
<form action="" method="POST">
Ingrese un numero: <input type="text" name="numero"><br>
<input type="submit" name="enviar" value="Enviar"> </form>
<?php
if(isset($_POST['enviar'])) {
$numero=$_POST['numero'];
echo 'El tipo obtenido por gettype por un POST o GET siempre es: '.gettype($numero).'<br />';
if(is_numeric($numero)){
echo 'Es numerico';
}else{
echo 'No es numerico';
}

}
?>
</html>


Esto te daría de resultado (si es que le pasamos un número):
El tipo obtenido por gettype por un POST o GET siempre es: string
Es numerico

Fue un error mío no aclarar que mediante POST o GET todo valor siempre se pasa como string pero a la hora de procesar ya puedes hacerlo como gustes, saludos.
Cada vez que me das Karma me motivas