Foros del Web » Programando para Internet » PHP »

validacion de campos con php

Estas en el tema de validacion de campos con php en el foro de PHP en Foros del Web. Amigos, buen dia y buen karma para quien lea este mensaje... gracias de antemano por la ayuda Paso directamente a mi duda... Tengo una pagina ...
  #1 (permalink)  
Antiguo 23/11/2012, 12:49
 
Fecha de Ingreso: septiembre-2009
Mensajes: 56
Antigüedad: 14 años, 7 meses
Puntos: 0
validacion de campos con php

Amigos, buen dia y buen karma para quien lea este mensaje... gracias de antemano por la ayuda

Paso directamente a mi duda...

Tengo una pagina php llamada diamantefinanciero2.php en la que tengo un forumulario, dentro del cual tengo el campo "ventas". Este campo solo debe aceptar numero positivos. NO QUIERO verificarlo con javascript sino con PHP.
Para hacerlo, lo intento controlar mediante una variable llamada $letrero, de esta manera

Código PHP:
session_start();
$letrero "";
$errorDiamante $_SESSION['errorDiamante'];

if (
$errorDiamante == OR $errorDiamante == OR $errorDiamante == 3)
    {
    
$_SESSION['errorDiamante'] = 0;
    
$letrero "\" Ventas\" sólo acepta NÚMEROS POSITIVOS e =    $errorDiamante"
    
$errorDiamante 0;
    }
// ... luego viene el resto del codigo que no interviene aqui 
Código HTML:
<form name="Form1" method="post" action="diamantefinanciero3.php" id="Form1">

<input type="text" id="Editbox1"  name="ventas" value="2500.00" tabindex="10">

<!-- luego el resto de los campos que no interesan en este problema, pero la linea que sigue es MUY IMPORTANTE -->

<div id="wb_Text16" >
<?php echo $letreroAdvertencia;  // CHECA QUE AQUI SE PINTA LO QUE PUSE EN LA VALIDACION DE ARRIBA?>
</div>
</form> 
Esta pagina se dirige, como ya lo habras notado, a la pagina diamantefinanciero3.php dentro de la cual se hace la validacion.

pongo el extracto de esta pagina
Código PHP:
session_start();

if (!
is_numeric($ventas))
    {
    
$_SESSION['errorDiamante']=1;
    
header ("Location: diamantefinanciero2.php");
    }
elseif (
is_null($ventas) OR $ventas="")
    {
    
$_SESSION['errorDiamante']=2;
    
header ("Location: diamantefinanciero2.php");
    }
elseif (
$ventas <= 0)  // ES ESTE IF DONDE NO PASA
    
{
    
$_SESSION['errorDiamante']=3;
    
header ("Location: diamantefinanciero2.php");
    } 
else {    
$_SESSION['errorDiamante']=0;}
// luego viene el resto de la pagina 
Mi problema es que, si en la pagina diamantefinanciero2.php y yo alimento el campo "ventas" con, digamos 2500.00 (el es es un NUMERO POSITIVO), al ir a la pagina destino diamantefinanciero3.php pasa el primer y el segundo IF, pero no el tercero.... me regresa a la pagina original con el letrero
"Ventas" sólo acepta NÚMEROS POSITIVOS e = 3

¿Alguien sabe por qué?
(Espero no haberte mareado con tanto rollo).

Gracias de antemano!!!!
  #2 (permalink)  
Antiguo 23/11/2012, 13:03
Avatar de Javier01  
Fecha de Ingreso: febrero-2008
Ubicación: Montevideo
Mensajes: 261
Antigüedad: 16 años, 2 meses
Puntos: 31
Respuesta: validacion de campos con php

Tienes un pequeño error en el codigo. El anterior elseif donde te da el error dice:
elseif (is_null($ventas) OR $ventas="")
Falta un signo de igual

Saludos
__________________
Tomarse un tiempo para redactar correctamente la pregunta, utilizando los signos de puntuación adecuados, es ganar tiempo y calidad en la respuesta.
  #3 (permalink)  
Antiguo 23/11/2012, 14:25
 
Fecha de Ingreso: septiembre-2009
Mensajes: 56
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: validacion de campos con php

Gracias Javier!!!! 100% cierto...

Ya lo resolvi, pero el error continua...

alguna solucion?
  #4 (permalink)  
Antiguo 23/11/2012, 14:35
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: validacion de campos con php

Yo sospecho que puede ser la manera como esta entendiendo el número.

Tu dices que lo estas probando con 2500.00, por pura casualidad ponle 2500 así sin punto decimal a ver si te lo recibe bien. Si mi sospecha es cierta es que esta malinterprentando el valor y no lo esta tomando como un double sino muy posiblemente de otra forma. Prueba con gettype a ver que tipo de dato te bota.

Ya se que esto va a sonar basica primaria pero usa max para comparar que número es mayor entre cero y el número que te manda.

http://php.net/manual/es/function.max.php
__________________
Blog de humor http://elcuasatar.net63.net/
  #5 (permalink)  
Antiguo 23/11/2012, 14:39
 
Fecha de Ingreso: septiembre-2009
Mensajes: 56
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: validacion de campos con php

Cita:
Iniciado por cuasatar Ver Mensaje

Ya se que esto va a sonar basica primaria pero usa max para comparar que número es mayor entre cero y el número que te manda.
la verdad no suena basico para nada... suena EXCELENTE (la verdad a mi no se me habia ocurrido). Pruebo lo que me cuentas y comento.
  #6 (permalink)  
Antiguo 23/11/2012, 15:34
 
Fecha de Ingreso: septiembre-2009
Mensajes: 56
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: validacion de campos con php

Muchas Gracias Javier01 y cuasatar. Sus respuestas me dieron mucha luz.
El problema SI se resolvió con la solución que me habia dado Javier01 , pero yo estaba cometiendo el error (infantil) de no haberlo pasado al servidor, sólo lo había editado en el notepad++.
Saludos y Gracias a ambos...

Etiquetas: campos, variables
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:19.