[Noob] Formulario PHP

SmirroLL

Muy buenas, el otro dia dimos un poco por encima los formularios con php y demás y el tio nos mandó hacer un programa para medir fincas, vamos, calcular el area de un cuadrado...
La idea es que metas en cada cuadro un numero y al final te ponga el total, sería algo así?


<html>
<head>
</head>
<body>
<form action="mide.php" method="post">
Lado Izdo :
<input type="text" name="izdo" /> <br>
Lado Dcho :
<input type="text" name="dcho" /> <br>
Lado Superior :
<input type="text" name="superior" /> <br>
Lado Inferior :
<input type="text" name="inferior" /> <br>

<input type="submit" value="Calcular"/> <br>
</form>
</body>

</html>


Y luego en la página mide.php

<?php

$area = (($superior + $infe)/2) * (($izdo + $dcho)/2);
printf ("Area total : $Area");

?>


Nos ha dicho que nos busquemos la vida y a ver si alguno lo conseguía hacer, pero por mucho que miro, para pasar los datos del formulario al php y que lo calcule no tengo cojones.

pd. Si, soy un inutil, pero hemos dao 2 clases y es lo que hay! xDDDDD

Hynack

Tienes que recoger las variables que le pasas a la nueva pagina a traves del formulario:

$variable = $_POST["nombredelformulario"];


<html>
<head>
</head>
<body>
<form action="mide.php" method="post">
Lado Izdo :
<input type="text" name="izdo" />

Lado Dcho :
<input type="text" name="dcho" />

Lado Superior :
<input type="text" name="superior" />

Lado Inferior :
<input type="text" name="inferior" />

<input type="submit" value="Calcular"/>

</form>
</body>

</html>


<?php

$superior = $POST["superior"];
$infe = $
POST["inferior"];
$dcho = $POST["dcho"];
$izdo = $
POST["izdo"];

$area = (($superior + $infe)/2) * (($izdo + $dcho)/2);
printf ("Area total : $Area");

?>

SmirroLL

algo así?

<?php

$izdo = $POST["izdo"];
$dcho = $
POST["dcho"];
$supe = $POST["supe"];
$infe = $
POST["infe"];

$area = (($supe + $infe)/2) * (($izdo + $dcho)/2);
printf ("Area total : $Area");

?>

edit: que sería de mi sin mv... visto, muchas gracias herm0so :)

Hynack

en $_POST["loquesea"] tiene que ir el nombre exacto del campo del formulario, aquello de name="derecha", por ejemplo.

SmirroLL

thx, voy a ver que sale...

SmirroLL

Pues pues....

el archivo mide.php es este :

<html>
<head>
</head>
<body>
<h1> MEDIDOR DE PRAOS</h1>

<form action="mide.php" method="post">

Lado Izdo :
<input type="text" name="izdo" />

Lado Dcho :
<input type="text" name="dcho" />

Lado Superior :
<input type="text" name="supe" />

Lado Inferior :
<input type="text" name="infe" />

<input type="submit" value="Calcular"/>

</form>
</body>

</html>

<?php

$supe = $POST["supe"];
$infe = $
POST["infe"];
$dcho = $POST["dcho"];
$izdo = $
POST["izdo"];

$area = (($supe + $infe)/2) * (($izdo + $dcho)/2);
printf ("El prao mide : $Area");

?>

Pero no me calcula nada, le doy a calcular y no me hace nada, que falla?

YiTaN

Si no mal recuerdo, PHP es case sensitive, y estás guardando el resultado en $area y mostrando $Area, que es una variable distinta.

Prueba a ver si así lo consigues. Saludos ;)

SmirroLL

la madre que me parió, eso era, muchas gracias xDDDD

LOc0

Es de las pocas cosas que no me gusta de PHP. Al no tener que declarar las variables antes de usarlas, si te equivocas al teclear el nombre de alguna puede ser bastante jodido dar con el error. Imagino que habra IDEs que detecten esto...

Salu2 ;)

SeiYa

#9 se puede forzar para que muestre warnings al mostrar por pantalla variables nulas.

LOc0

#10 Cierto, el error_reporting da mucho juego, aunque me refería más a modificar (para luego usar obviamente) una variable llamada $Pepe pensando que es $pepe. Ahí el intérprete de poco te puede avisar a no ser que haya una opción que te alerte del uso de variables con el "mismo" nombre o con nombres "muy parecidos", que DUDO que exista...

Salu2 ;)

neo-ns

con un $_REQUEST tambien puedes!

yo aconsejo en php usar las mayusculas cuanto menos mejor todo minusculas o a la inversa todo mayusculas pero mayusculas y minusculas... depende del codigo puede ser mortal!

Usuarios habituales

  • neo-ns
  • LOc0
  • SeiYa
  • SmirroLL
  • YiTaN
  • Hynack