PHP - Aprendiendo: Armar calculadora

   
Vista:

Aprendiendo: Armar calculadora

Publicado por Cachi (33 intervenciones) el 12/09/2015 20:05:19
Hola,
Estoy aprendiendo el lenguaje php y me propuse crear una calculadora usando dos archivos para practicar el pase de variables y todo con formulario.

Ya creé los 2 archivos, pero no me funciona :(.

Les muestro los códigos de los 2 archivos a ver si pueden echarme una manito por favor.

Este es el archivo calculadora.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<html>
<head>
<title>Calculadora html y php </title>
</head>
<body>
<Font color=red>Ingresa las 2 cifras a calcular y por ultimo el nombre de la operacion:</Font><br>
<form action="recibe2.php" method=post>
<input type="text" name="cifra1" size="10" maxlength="10"><br>
<input type="text" name="cifra2" size="10" maxlength="10"><br>
<input type="text" name="operacion" size="10" maxlength="10"><br>
<input type=submit name="enviar" value="calcular">
</form>
</body>
</html>

Y este otro es el archivo recibe2.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<html>
<head>
<title>Calculadora html y php</title>
</head>
<body>
<?
if($_POST["cifra1"]==0)
{
echo "ERROR 01: No ingreso la primer cifra.<br>";
}
if($_POST["cifra2"]==0)
{
echo "ERROR 02: No ingreso la segunda cifra.";
}
else
{
echo "Resultado de la operación:<br>";
$resultadodivision=$_POST["cifra1"]/$_POST["cifra2"];
$resultadomultiplicacion=$_POST["cifra1"]*$_POST["cifra2"];
$resultadoresta=$_POST["cifra1"]-$_POST["cifra2"];
$resultadosuma=$_POST["cifra1"]+$_POST["cifra2"];
if($operacion==sumar)
echo $resultadosuma;
if($operacion==restar)
echo $resultadoresta;
if($operacion==multiplicar)
echo $resultadomultiplicacion;
if($operacion==dividir)
echo $resultadodivision;
}
?>
<br><br><A HREF=calculadora.htm>Hacer otra operación.</A>
</body>
</html>

¿ Alguien sabe por qué no me funciona ? O sea, nunca calcula nada. Sólo me dice "Resultado de la operación", un espacio en blanco y el enlace para volver a calculadora.html
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Aprendiendo: Armar calculadora

Publicado por xve (5513 intervenciones) el 12/09/2015 21:05:53
Hola Cachi, cuando hagas referencia a la variable $operacion, tienes que hacerlo así: $_POST["operacion"]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Aprendiendo: Armar calculadora

Publicado por Cachi (33 intervenciones) el 12/09/2015 22:04:03
Gracias XVE por ayudarme a empezar a aprender, funcionó !

Ahora quise hacer algo un poco más sofisticado, por un lado que en lugar de escribir la operación, haya que ingresar sólo el signo. Eso me salió bien !
Luego quise que al dar el resultado salga un mensaje explicando que operación hizo entre cuales números, y luego el resultado.
Ahí ya me da un error, el error que me da es:
Parse error: syntax error, unexpected '"', expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in /recibe2.php on line 23

¿Por favor alguien puede decirme qué estoy poniendo mal para imprimir el mensaje ?
Gracias !

El contenido de calculadora.html es

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<html>
<head>
<title>Calculadora html y php </title>
</head>
<body>
<Font color=red>Ingresa las 2 cifras a calcular y por ultimo el signo de la operacion:</Font><br>
<form action="recibe2.php" method=post>
<input type="text" name="cifra1" size="10" maxlength="10"><br>
<input type="text" name="cifra2" size="10" maxlength="10"><br>
<input type="text" name="operacion" size="1" maxlength="1"><br>
<input type=submit name="enviar" value="calcular">
</form>
</body>
</html>

El contenido de recibe2.php es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<html>
<head>
<title>Calculadora html y php</title>
</head>
<body>
<?
if($_POST["cifra1"]==0)
{
echo "ERROR 01: No ingreso la primer cifra.<br>";
}
if($_POST["cifra2"]==0)
{
echo "ERROR 02: No ingreso la segunda cifra.";
}
else
{
echo "Resultado de la operación:<br>";
$resultadodivision=$_POST["cifra1"]/$_POST["cifra2"];
$resultadomultiplicacion=$_POST["cifra1"]*$_POST["cifra2"];
$resultadoresta=$_POST["cifra1"]-$_POST["cifra2"];
$resultadosuma=$_POST["cifra1"]+$_POST["cifra2"];
if($_POST["operacion"]=='+')
echo "La operación fue una suma entre los valores $_POST["cifra1"] y $_POST["cifra2"] . Resultado:";
echo $resultadosuma;
if($_POST["operacion"]=='-')
echo "La operación fue una resta entre los valores $_POST["cifra1"] y $_POST["cifra2"] . Resultado:";
echo $resultadoresta;
if($_POST["operacion"]=='*')
echo "La operación fue una multiplicacion entre los valores $_POST["cifra1"] y $_POST["cifra2"] . Resultado:";
echo $resultadomultiplicacion;
if($_POST["operacion"]=='/')
echo "La operación fue una division entre los valores $_POST["cifra1"] y $_POST["cifra2"] . Resultado:";
echo $resultadodivision;
}
?>
<br><br><A HREF=calculadora.htm>Hacer otra operación.</A>
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro

Aprendiendo: Armar calculadora

Publicado por Alejandro (198 intervenciones) el 14/09/2015 19:12:23
Es por las comillas
Tienes: echo "la... - ...valores $_POST[" <-esta comilla cierra la primera
hay varias formas de hacerlo.

Combinar comillas dobles y simples
1
echo "La operación fue una multiplicacion entre los valores $_POST['cifra1'] y $_POST['cifra2'] . Resultado:";

Usar el caracter de escape
1
echo "La operación fue una multiplicacion entre los valores $_POST[\"cifra1\"] y $_POST[\"cifra2\"] . Resultado:";

Concatenar
1
echo "La operación fue una multiplicacion entre los valores ".$_POST["cifra1"]." y ".$_POST["cifra2"]." . Resultado:";

y no se si sea correcto pero a mi me funciona asi
1
echo "La operación fue una multiplicacion entre los valores $_POST[cifra1] y $_POST[cifra2] . Resultado:";

La diferencia entre comillas doble y simple es que dentro de la doble puedes usar variables y la simple lo que halla dentro es absoluto. La diagonal invertida funciona como caracter de escape.

1
2
3
$hi = "HOLA MUNDO"
echo "$hi"; // Resultado: HOLA MUNDO
echo '$hi'; // Resultado: $hi
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Aprendiendo: Armar calculadora

Publicado por Cachi (33 intervenciones) el 15/09/2015 03:35:03
Muchísimas gracias amigo, me ayudaste mucho !!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar