Ayuda con formularios
Publicado por Rut (2 intervenciones) el 29/07/2020 22:44:07
Quiero hacer un programa que te muestre una suma con números aleatorios, te pida una solución y al ponerla te diga si has acertado o has fallado, a parte tiene que contar los fallos y los aciertos y contar el tiempo que te cueste hacer un número de veces esa suma. Hasta el momento he hecho en un documento la suma, en otro he hecho un formulario y este con POST se envía a otro que te dice si has acertado o has fallado, pero no sé cómo hacer que vuelva a mostrar la suma ni que cuente los fallos y aciertos, este es el código de la suma:
Este el código del formulario:
Si pongo "<form action="prueba.php" method="post">" No me hace la comprobación ni me muestra error si lo introducido no es un número, pero si pongo "<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">" Me hace la comprobación pero al enviar se recarga la página cambiando el resultado y nunca acierto.
Y el código de prueba:
Mi nivel de php no es muy alto y no veo una solución a todo, necesito ayuda
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$num = array(rand(1000,9999),rand(1000,9999),rand(1000,9999));
foreach ($num as $numeros) {
echo $numeros. "</br>";
}
$resultado = array_sum($num);
?>
Este el código del formulario:
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>
<?php
$res = "";
$reserr = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["res"])) {
$reserr = "Este campo es requerido.";
} else {
$res = test_input($_POST["res"]);
if (!filter_var($res, FILTER_VALIDATE_INT)) {
$reserr = "Sólo números";
}
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
include 'suma.php';
$t = $resultado;
?>
<form action="prueba.php" method="post">
<input type="hidden" name="prueba" value="<?php echo $t; ?>"/>
<input type="text" name="res">
<span class="error"><?php echo $reserr;?>
</span>
<br><br>
<input type="submit" name="submit" value="Enviar">
</form>
</body>
</html>
Si pongo "<form action="prueba.php" method="post">" No me hace la comprobación ni me muestra error si lo introducido no es un número, pero si pongo "<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">" Me hace la comprobación pero al enviar se recarga la página cambiando el resultado y nunca acierto.
Y el código de prueba:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$val = $_POST['res'];
$val2 = $_POST['prueba'];
echo $val;
echo "</br>";
echo $val2;
echo "</br>";
if ($val != 0) {
if ($val == $val2) {
echo "Has acertado";
} else {
echo "Has fallado";
}
}
?>
Mi nivel de php no es muy alto y no veo una solución a todo, necesito ayuda
Valora esta pregunta


0