Antwoord niet bij de juiste som
Als ik het juiste antwoord invoer dan word het antwoord wat ik heb ingevuld, bij de volgende som weergegeven.
Pleasse help
Code (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
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<!DOCTYPE html>
<html>
<head>
<title>
Rekenwebsite
</title>
<link href="sommen.css" type="text/css" rel="stylesheet" />
<style>
{background-color: blue;}
</style>
</head>
<body>
<?php
// Start the session
session_start();
if(isset($_SESSION['aantalvragen']))
{
$aantalvragen = $_SESSION['aantalvragen'];
$cijfer = $_SESSION['cijfer'];
}
else {
$aantalvragen = 1;
$cijfer = 0;
}
if(isset($_POST['antwoord']))
{
$antwoordgebruiker = $_POST['antwoord']; // haalt het antwoord van de gebruiker op
}
else {
$antwoordgebruiker = null; // antwoord is leeg
}
$som1 = mt_rand(1,10); // willekeurig getal 1 tot en met 10
$som2 = mt_rand(1,10);
$antwoord = $som1 + $som2;
//var_dump($sommen); uitlezen array
if($aantalvragen<=20)
{
echo'<div id="pagina">';
echo'<a href="Homepage.php"><img src="Logo Rekenwebsite.png" width="240" height="240"></a><br/>';
echo'<br/><div id="menu1"><h1>Rekenwebsite De Splinter</h1></div>';
echo'<div id="menu2"><h3>Test hier je vaardigheden voor groep 4, 5 en 6!</h3></div>';
echo '<div id="som">';
echo '<form method="POST" action="">';
echo '<b>Vraag '.$aantalvragen.' / 20</b><br/>';
echo $cijfer;
echo '<h1>'.$som1.' + '.$som2.' = </h1>';
echo '<input name="antwoord" type="text" size="8" autofocus maxlength="8">';
echo '<input name="volgende" type="submit" value="Volgende">';
echo '</form>';
echo '</div>';
if(isset($_POST['volgende'])){
$sommen[$aantalvragen-1][1] = $antwoordgebruiker;
}
if(isset($_SESSION["sommen"]))
{
$sommen = $_SESSION["sommen"];
}
else
{
$sommen = array();
}
$sommen[$aantalvragen] = array($som1.' + '.$som2." = ".$antwoord.' Uw antwoord is: '.$antwoordgebruiker); // slaat sommen en antwoord op
if ($_POST['antwoord'] == $antwoord){
$cijfer = $cijfer + 0.5;}
$aantalvragen++; // telt de vragen op
$_SESSION['aantalvragen'] = $aantalvragen;
$_SESSION['cijfer'] = $cijfer;
$_SESSION["sommen"] = $sommen;
}
else
{
$sommen = $_SESSION["sommen"]; // uitslag
echo'<div id="pagina">';
echo '<table>';
echo'<a href="Homepage.php"><img src="Logo Rekenwebsite.png" width="240" height="240"></a><br/>';
echo'<br/><div id="menu1"><h1>Rekenwebsite De Splinter</h1></div>';
echo'<div id="menu2"><h3>Test hier je vaardigheden voor groep 4, 5 en 6!</h3></div>';
for($i=1; $i<21; $i++)
{for($k=0; $k<count($sommen[$i]);$k++)
{echo '<tr><td><h2>'.$sommen[$i][$k].'</h2></td></tr>';}}
echo $cijfer;
echo '</table>';
echo '<br/><a href="Homepage.php">Terug naar Homepage</a>';
echo '</div>';
session_destroy();
// verwijderd de sessie zodat de sommen weer opnieuw gemaakt kunnen worden
}
?>
</body>
</html>
<html>
<head>
<title>
Rekenwebsite
</title>
<link href="sommen.css" type="text/css" rel="stylesheet" />
<style>
{background-color: blue;}
</style>
</head>
<body>
<?php
// Start the session
session_start();
if(isset($_SESSION['aantalvragen']))
{
$aantalvragen = $_SESSION['aantalvragen'];
$cijfer = $_SESSION['cijfer'];
}
else {
$aantalvragen = 1;
$cijfer = 0;
}
if(isset($_POST['antwoord']))
{
$antwoordgebruiker = $_POST['antwoord']; // haalt het antwoord van de gebruiker op
}
else {
$antwoordgebruiker = null; // antwoord is leeg
}
$som1 = mt_rand(1,10); // willekeurig getal 1 tot en met 10
$som2 = mt_rand(1,10);
$antwoord = $som1 + $som2;
//var_dump($sommen); uitlezen array
if($aantalvragen<=20)
{
echo'<div id="pagina">';
echo'<a href="Homepage.php"><img src="Logo Rekenwebsite.png" width="240" height="240"></a><br/>';
echo'<br/><div id="menu1"><h1>Rekenwebsite De Splinter</h1></div>';
echo'<div id="menu2"><h3>Test hier je vaardigheden voor groep 4, 5 en 6!</h3></div>';
echo '<div id="som">';
echo '<form method="POST" action="">';
echo '<b>Vraag '.$aantalvragen.' / 20</b><br/>';
echo $cijfer;
echo '<h1>'.$som1.' + '.$som2.' = </h1>';
echo '<input name="antwoord" type="text" size="8" autofocus maxlength="8">';
echo '<input name="volgende" type="submit" value="Volgende">';
echo '</form>';
echo '</div>';
if(isset($_POST['volgende'])){
$sommen[$aantalvragen-1][1] = $antwoordgebruiker;
}
if(isset($_SESSION["sommen"]))
{
$sommen = $_SESSION["sommen"];
}
else
{
$sommen = array();
}
$sommen[$aantalvragen] = array($som1.' + '.$som2." = ".$antwoord.' Uw antwoord is: '.$antwoordgebruiker); // slaat sommen en antwoord op
if ($_POST['antwoord'] == $antwoord){
$cijfer = $cijfer + 0.5;}
$aantalvragen++; // telt de vragen op
$_SESSION['aantalvragen'] = $aantalvragen;
$_SESSION['cijfer'] = $cijfer;
$_SESSION["sommen"] = $sommen;
}
else
{
$sommen = $_SESSION["sommen"]; // uitslag
echo'<div id="pagina">';
echo '<table>';
echo'<a href="Homepage.php"><img src="Logo Rekenwebsite.png" width="240" height="240"></a><br/>';
echo'<br/><div id="menu1"><h1>Rekenwebsite De Splinter</h1></div>';
echo'<div id="menu2"><h3>Test hier je vaardigheden voor groep 4, 5 en 6!</h3></div>';
for($i=1; $i<21; $i++)
{for($k=0; $k<count($sommen[$i]);$k++)
{echo '<tr><td><h2>'.$sommen[$i][$k].'</h2></td></tr>';}}
echo $cijfer;
echo '</table>';
echo '<br/><a href="Homepage.php">Terug naar Homepage</a>';
echo '</div>';
session_destroy();
// verwijderd de sessie zodat de sommen weer opnieuw gemaakt kunnen worden
}
?>
</body>
</html>
- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 12/02/2015 14:04:29 door - Ariën -
- toont, op grond van hoeveel sommen er reeds gemaakt zijn
- ofwel een formulier voor het maken van een som
- ofwel een resultaat pagina
- verwerking van het formulier van een rekensom
In het bovenstaande script loopt dat een beetje door elkaar. Daarnaast pingel je tussenresultaten heen en weer tussen variabelen en de sessie.
Dit alles vertroebelt de leesbaarheid van het script.
En daarmee de uiteindelijke werking.
En daarmee het gemak waarmee je er fouten uithaalt.
Dus, creëer eerst eens orde in deze chaos, bijvoorbeeld door dit script in twee stukken op te delen (een weergave-deel en een verwerk-deel).
Daarnaast, als je scripts begint te schrijven, moet je ook een zekere minimale kennis hebben om scripts te debuggen. Dit kun je doen door het aanzetten en weergeven van foutmeldingen:
En het tussentijds "dumpen" van informatie naar je scherm. Je zegt dat er iets mis is met de sommen en de antwoorden. Al deze informatie zit in je sessie. Is het al bij je opgekomen om de inhoud van je sessie te inspecteren? Die vertelt je namelijk precies wat er mis is:
- ofwel de data in je sessie is verkeerd opgeslagen
- ofwel de data in je sessie wordt verkeerd afgedrukt
- of een combinatie van beide
Informatie dumpen doe je met var_dump() of print_r(), bijvoorbeeld als volgt:
Hierbij is wel enige voorzichtigheid geboden als de variabelen / arrays in kwestie gebruikersinvoer bevatten.
Ga hier eerst eens mee aan de slag, en kijk of je deze warboel zelf kunt ontrafelen.