Programación Web y Scripting > PHP

 problemas al validar formulario php

(1/2) > >>

thinlizzy:
estimados estoy tratando de validar un pequeño formulario para que me resuelva las cuatro operaciones basicas(suma,resta,multiplicacion,division)
 el problema es que cuando dejo en blanco un espacio, me da un mensaje error, el cual adjunte, quisas algo hago mal.
espero me puedan ayudar.


--- Código: --- <html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>FORMULARIO</title>
</head>

<body>
<h1>formulario</h1>
<?php if($_POST){
    
 $numero1=$_POST['n1'];
 $numero2=$_POST['n2'];
 
 $res_suma = ($numero1+$numero2);
 $res_resta = ($numero1-$numero2);
 $res_multiplicacion =($numero1*$numero2);
 $res_division = ($numero1/$numero2);
 
 if($numero1=="")
 {
echo "el campo 1 esta vacio"; 
 }
 else
 {

    if($numero2=="" )
 {
echo "el campo 2 esta vacio"; 
 }
 if($numero1=="" && $numero2=="")
 {
echo "el campo 1 y campo 2 estan vacios"; 
 }
     
 
 else
 {
 echo "LA SUMA ES :".$res_suma;
 echo "LA RESTA ES: ".$res_resta;
 echo "LA MULTIPLICACION ES:".$res_multiplicacion;
 echo "LA DIVISION ES :".$res_division;
 
 }
 }
 
 
}
else
{
 
 
    /*{
//include('../clases/FORMULARIO_PHP_VALIDAR SESION/formulario_enviado.php')
$
if($_POST['n1'] && $_POST['n2'])
{

echo '<p><strong>' .$_POST['nombre']." ".$_POST['apellido'].'</strong>,ha implemetado el formulario correctamente</p>';

    }

else
    {
echo '<p>Los datos estan incompletos.</p> <p> <a href="practica.php">VOLVER </a>';
    }
}
else
    {*/
?>
<form action="practica.php" method="post">

<fieldset>
  <legend> Opciones generales </legend>
<fieldset>
<legend> datos personales </legend>
<input type="text" name="n1" value="">
<input type="text" name="n2" value="">
</fieldset>
</fieldset>
<input type="submit" value="Enviar" >
<input type="reset" value="borrar" >
<?php } ?>
</form>

</body>
</html>
--- Fin del código ---






ryuz:
Bueno, el "error" que dices es debido que no se puede "dividir" por cero.

Primero que nada te recomiendo utilizar la función empty($var) para la comprobación de si esta vacio o no una variable.

Tambien te recomiendo usar is_numeric($var) para comprobar si es un numero y a su vez la igualdad con 0 para descartar que nos de error en la división 0.

Aqui te dejo un pequeño ejemplo de como queda la estructura del código.


--- Código: PHP ---<?php$n1 = 10;$n2 = 2;if( !empty($n1) && !empty($n2) && is_numeric($n1) && is_numeric($n2) && ($n1 != 0) && ($n2 != 0)) {        echo "Operaciones...";} else {        if( empty($n1) || empty($n2) ) {                if(empty($n1)) {                        echo "Valor n1 vacio.";                } else {                        echo "Valor n2 vacio.";                }        } else {                if( !is_numeric($n1) ) {                        echo "Valor n1 no numerico.";                } else {                        echo "Valor n2 no numerico.";                }        }}?> 
Tambien podrias hacer comprobaciones de si el numero es negativo, etcétera.

:)

thinlizzy:
 :guitar: muchas gracias por tu ayuda, espero mejorar dia a dia, cualquier duda, creo que podre contar contigo..gracias

thinlizzy:
tengo una duda con la linea 8, por que se repiten los if?? ya que arriba se hace la consulta si uno u otro esta vacio...

gracias

thinlizzy:
Al probar los codigos no veo los campos del formulario, lo hago funcionar con el  wamp y no pasa nada, pongo a dispocicion el código si me puedes ver cual es el problema...


--- Código: PHP ---<body> <h1>formulario</h1><?php if($_POST){             $n1=$_POST['n1'];         $n2=$_POST['n2'];                  $res_suma = ($n1+$n2);         $res_resta = ($n1-$n2);         $res_mult =($n1*$n2);         $res_div = ($n1/$n2);/*Aca compruebo con empty si una variable esta vacia o no y conis_numeric compruebo si la variable es numerica o no*/   if( !empty($n1) && !empty($n2) && is_numeric($n1) && is_numeric($n2) && ($n1 != 0) && ($n2 != 0)) {        echo "LA SUMA ES:".$res_suma;                echo "LA RESTA ES:".$res_resta;                echo "LA MULTIPLICACION ES:".$res_mult;                echo "LA DIVISION ES:".$res_div;} else {        if(empty($n1) || empty($n2)) {                if(empty($n1)) {                        echo "Valor n1 vacio.";                } else {                        echo "Valor n2 vacio.";                }        } else {                if( !is_numeric($n1) ) {                        echo "Valor n1 no numerico.";                } else {                        echo "Valor n2 no numerico.";               }        }                                }<form action="practica.php" method="post"> <fieldset>  <legend> Opciones generales </legend><fieldset><legend> datos personales </legend><input type="text" name="n1" value=""><input type="text" name="n2" value=""></fieldset></fieldset><input type="submit" value="Enviar" ><input type="reset" value="borrar" ><?php } ?></form> </body> 

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa