Foros del Web » Programando para Internet » PHP »

formularios y float's

Estas en el tema de formularios y float's en el foro de PHP en Foros del Web. Que tal?? Tengo un formulario típico de añadir producto donde quiero asegurarme que el precio del producto sea siempre de tipo float. En la parte ...
  #1 (permalink)  
Antiguo 24/02/2009, 19:07
 
Fecha de Ingreso: febrero-2009
Mensajes: 30
Antigüedad: 15 años, 2 meses
Puntos: 0
Busqueda formularios y float's

Que tal??

Tengo un formulario típico de añadir producto donde quiero asegurarme que el precio del producto sea siempre de tipo float.

En la parte de html he puesto el siguiente capo para el formulario:

Código HTML:
<p>Precio:
<input name="precio" id="precio" type="text"/></p> 
Y en la parte php que valida el producto he hecho esto:

Código PHP:
if(is_float($_POST["precio"])==false)
    
$_SESSION['error_precio']==true
En el formulario al comienzo antes del codigo html hay una comprobacion donde si existe esa variable de sesión es que se ha producido un error y por lo tanto lanza un mensaje.

Código PHP:
if(isset($_SESSION['error_precio']==true)
   
printf("Error introcuciendo precio"); 
Luego por supuesto destruyo la variable de sesion
Código PHP:
 $_SESSION['error_precio'
con
Código PHP:
session_unregister('error_precio'); 
La idea me parece muy sencilla y no le veo mas complicación al código pero cuando lo pruebo e introduzco un float en el formulario por ejemplo 2.30 (tal cual con un punto por decimal) la validación da como si fuese un tipo de dato erroneo. He probado usando una coma (2,30) por si acaso pero nada

¿Se os ocurre algo?
  #2 (permalink)  
Antiguo 24/02/2009, 19:26
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: formularios y float's

Todos los valores de formulario son recibidos como cadena y debes hacer las conversiones correspondientes, tal vez verificando que solo exista un punto y contando la cantidad de decimales.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 25/02/2009, 05:56
 
Fecha de Ingreso: febrero-2009
Mensajes: 30
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: formularios y float's

Ya lo he solucionado de otra forma. Al decirme tu que se pasaban como cadena me acorde que php transforma automáticamente en el dato en el tipo mas apropiado para la operación que está haciendo.

Lo que he hecho ha sido añadir antes del if(is_float($_POST['precio'])) una operación $precio=$precio+0; de esta forma si tengo una cadena transformable en entero se tranformará en entero dando error si tendo una cadena de caracteres no se tranformará y dará error y si tengo una cadena que es en realidad un float se transformará en float dando correcto.

Bueno muchas gracias que tu información me ha servido de mucho.
  #4 (permalink)  
Antiguo 25/02/2009, 06:03
 
Fecha de Ingreso: enero-2008
Mensajes: 52
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: formularios y float's

No se si te has dado cuenta pero tienes un fallo aquí:

Código PHP:
if(is_float($_POST["precio"])==false)
    
$_SESSION['error_precio']==true
La asignación la has de hacer con un =

Código PHP:
if(is_float($_POST["precio"])==false)
    
$_SESSION['error_precio'] = true
  #5 (permalink)  
Antiguo 25/02/2009, 06:21
 
Fecha de Ingreso: febrero-2009
Mensajes: 30
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: formularios y float's

Gracias ha sido un error al escribirlo en el post. En el código está bien :p
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 17:21.