PHP - Ayuda con formularios

 
Vista:
sin imagen de perfil
Val: 5
Ha aumentado su posición en 26 puestos en PHP (en relación al último mes)
Gráfica de PHP

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:

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
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 joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con formularios

Publicado por joel (1269 intervenciones) el 30/07/2020 11:49:08
Hola Rut, de la manera que lo estas haciendo, tienes que guardar el numero en una cookie o variable de session, y solo eliminar dicha cookie o variable de session cuando el usuario haya acertado el numero... luego el sistema tiene que volver a generar dicho numero.

El problema que tienes, es el que tu misma comentas, cada vez que recargas la pagina se actualiza el valor.


Otra manera, seria averiguar el numero con JavaScript, pero entiendo que la tarea es únicamente con PHP.
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
sin imagen de perfil
Val: 5
Ha aumentado su posición en 26 puestos en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con formularios

Publicado por Rut (2 intervenciones) el 30/07/2020 15:40:35
Gracias! Intentaré hacer lo que me has dicho.
Sí, tiene que ser solo con PHP y luego tengo que ponerlo en un wordpress, pero el código tiene que ser PHP
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