Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: عя ҜΔŁĬ en Junio 06, 2011, 04:40:46 PM

Título: [SOLUCIONADO] [Taller de PHP] Formularios
Publicado por: عя ҜΔŁĬ en Junio 06, 2011, 04:40:46 PM
Buenas, estoy haciendo el último ejercicio y quería saber como obtener el tipo de variable introducida en un label de un formulario, porque obteniendolo normalmente con gettype siempre da string,, ya que esta en una variable entrre comillas digamos.
Saludos
Título: Re:[Duda] [Taller de PHP] Formularios
Publicado por: ~ Yoya ~ en Junio 06, 2011, 04:48:14 PM
Claro man, cuando encierras un valor entre comillas simples o dobles, estas indicando que el contenido es tipo string.

Código (php) [Seleccionar]

$var = 5151;
$boolean = true;


El primero es una variable cuyo valor es tipo int (enteros) y el segundo es una variable booleana.

Saludos.
Título: Re:[Duda] [Taller de PHP] Formularios
Publicado por: عя ҜΔŁĬ en Junio 06, 2011, 04:53:24 PM
Creo que no me he explicado bien. lo que quiero hacer es esto:

<form action="" method="POST">
Introduce lo que quieras: <input type="text" name="msg" /><br><br>
<input type="submit" name="boton" value="Enviar" />
</form>

<?php
$msg 
$_POST['msg'];
if(
is_int($msg)){
echo 'Ahora tiene un numero mas'.++$msg;
}
?>


Pero claro, siempre devuelve tipo string, entonces aunque solo introduzcas en el campo de texto números, no te lo va a evaluar como integer, entonces me preguntaba como solucionarlo
Saludos y gracias contestar rápido ;)
Título: Re:[Duda] [Taller de PHP] Formularios
Publicado por: ~ Yoya ~ en Junio 06, 2011, 05:05:54 PM
Puedes establecer el tipo de valor de una variable utilizando settype() (http://www.php.net/manual/es/function.settype.php).

Código (php) [Seleccionar]

<form action="" method="POST">
Introduce lo que quieras: <input type="text" name="msg" /><br><br>
<input type="submit" name="boton" value="Enviar" />
</form>

<?php
$msg 
$_POST['msg'];

settype($msg"integer");
if(
is_int($msg)){
echo 'Ahora tiene un numero mas'.++$msg;
}
?>


Saludos.
Título: Re:[Duda] [Taller de PHP] Formularios
Publicado por: عя ҜΔŁĬ en Junio 06, 2011, 05:16:15 PM
Si pero yo no quiero cambiar el tipo de variable, sino saber que tipo es, según lo que el usuario escriba en el campo de texto.
Alomejor en php no se puede hacer, de php se lo básico
He buscado en google y tampoco he encontrado nada
Saludos
Título: Re:[Duda] [Taller de PHP] Formularios
Publicado por: ~ Yoya ~ en Junio 06, 2011, 05:22:32 PM
Al parecer todos los datos que se ingresan desde un formulario, llegan como tipo string.

Si no quieres establecer el tipo de valor que contiene una variable que seria lo mas lógico, puedes comprobar que solo contenga numeros usando expresiones regulares pero entenderías menos xD.
Título: Re:[Duda] [Taller de PHP] Formularios
Publicado por: Xt3mP en Junio 06, 2011, 05:57:50 PM
Todo valor pasado por un formulario tanto método POST como GET regresará tipo string. Pero ¿qué pasa si queremos comprobar que tipo de variable es?, para eso existen las funciones que deje en el taller, un ejemplo de uso:

Código (php) [Seleccionar]

<?php
if(isset($_POST['boton']))
{
if(is_numeric($_POST['msg'])):
echo 'Es numérico';
else:
echo 'Es string';
endif;
}
?>

<form action="" method="POST">
Introduce lo que quieras: <input type="text" name="msg" /><br><br>
<input type="submit" name="boton" value="Enviar" />
</form>


Es decir, puedes utilizar varias funciones como is_numeric, is_string, is_bool, etc, inclusive puedes checar si dentro del valor del formulario viene alguna letra o carácter no numérico para seguir con la condicional, saludos.
Título: Re:[Duda] [Taller de PHP] Formularios
Publicado por: عя ҜΔŁĬ en Junio 08, 2011, 10:24:06 AM
Ahora si, gracias a los dos, no me acurdaba de la función is_numeric  :-[
Saludos ya pueden cerrar el tema si quieren