Vorige in brouwser ongedaan maken
Ik heb een quiz gemaakt, maar als ik een vraag fout beantwoord kan ik met behulp van de volgende en vorige knop van mijn brouwser gewoon terug om deze fout te verbeteren.
De quiz zit in elkaar met $_GET.
Dus ik roep de vragen aan door ?vraag=1 enz. achter de URL te zetten.
Hier is het voorbeeld:
http://www.plantennamen.info/quiz-test
De quiz staat met behulp van een iframe in de site.
Hoe kan ik ervoor zorgen dat je een vraag niet nog eens kunt beantwoord door de terug en vorige knop?
Alvast bedankt!
n9iels
Pas controleren op het einde of de vragen goed of fout zijn.. net zoals bij elke quiz?
Ik wil dat als de bezoeker het antwoord aanklikt hij direct ziet of het goed of fout is.
Je kunt in een session zetten welke vragen al geweest zijn. Bij iedere nieuwe vraag controleren of die vraag al in de session zit. Zo ja: vraag niet weergeven
Ik heb alleen geen ervaring met sessions.
Het lijkt mij dat je dit telkens moet gebeuren wanneer hij naar de volgende vraag gaat:
Code (php)
1
2
3
4
2
3
4
<?php
session_start();
$_SESSION['vraag'] = $_SESSION['vraag'] + '.htmlspecialchars($aBericht['vraag']).';
?>
session_start();
$_SESSION['vraag'] = $_SESSION['vraag'] + '.htmlspecialchars($aBericht['vraag']).';
?>
Alleen hoe controleer ik nu of de vraag al is geweest?
Zo?:
Code (php)
Wat gebeurt er trouwens met de session als de quiz klaar is?
Worden ze geleegd zodra ik de pagina opnieuw laad?
Gewijzigd op 11/12/2011 17:15:55 door Niels Veer
bv: $_SESSION['vraag'][$vraagnummer] = 'ja';
$vraagnummer kun je dan uit de _GET halen
controle:
Code (php)
Je sessie zal op iedere pagina van je site die begint met session_start() bewaard blijven. session_start() moet echt helemaal bovenaan staan!
met session_destroy() gooi je de complete sessie leeg.
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
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
<?php
while ( $aBericht = mysql_fetch_assoc( $rResult ) ) {
$paginanummer= ''.htmlspecialchars($aBericht['id']).'';
switch($_GET['vraag']) {
case $paginanummer:
echo '
<form method="post" action="" name="vraag" id="quizvraag">';
echo '<p>
<a href="afbeeldingen/' . htmlspecialchars( $aBericht['afbeelding'] ) . '" rel="lightbox"><img src="afbeeldingen/' . htmlspecialchars( $aBericht['afbeelding_thumb'] ) . '"></a><br><br>
'.htmlspecialchars($aBericht['vraag']).'
</p>
<p>';
echo 'A.<input type="submit" disabled="disabled" name="a" value="'.htmlspecialchars($aBericht['antwoordA']).'" />';
echo 'B.<input type="submit" disabled="disabled" name="b" value="'.htmlspecialchars($aBericht['antwoordB']).'" />';
echo 'C.<input type="submit" disabled="disabled" name="c" value="'.htmlspecialchars($aBericht['antwoordC']).'" />';
echo '</p>
<input type="submit" name="volgendevraag" value="Volgende vraag" />
</form>';
if(isset($_POST['volgendevraag']) )
{
$_SESSION['vraag'][$paginanummer] = 'beantwoord';
header("Location: ?vraag=" . (intval($paginanummer)+1));
exit();
}
if(!empty($_SESSION['vraag'][$paginanummer])) {
header("Location: ?vraag=beging");
exit();
}
?>
while ( $aBericht = mysql_fetch_assoc( $rResult ) ) {
$paginanummer= ''.htmlspecialchars($aBericht['id']).'';
switch($_GET['vraag']) {
case $paginanummer:
echo '
<form method="post" action="" name="vraag" id="quizvraag">';
echo '<p>
<a href="afbeeldingen/' . htmlspecialchars( $aBericht['afbeelding'] ) . '" rel="lightbox"><img src="afbeeldingen/' . htmlspecialchars( $aBericht['afbeelding_thumb'] ) . '"></a><br><br>
'.htmlspecialchars($aBericht['vraag']).'
</p>
<p>';
echo 'A.<input type="submit" disabled="disabled" name="a" value="'.htmlspecialchars($aBericht['antwoordA']).'" />';
echo 'B.<input type="submit" disabled="disabled" name="b" value="'.htmlspecialchars($aBericht['antwoordB']).'" />';
echo 'C.<input type="submit" disabled="disabled" name="c" value="'.htmlspecialchars($aBericht['antwoordC']).'" />';
echo '</p>
<input type="submit" name="volgendevraag" value="Volgende vraag" />
</form>';
if(isset($_POST['volgendevraag']) )
{
$_SESSION['vraag'][$paginanummer] = 'beantwoord';
header("Location: ?vraag=" . (intval($paginanummer)+1));
exit();
}
if(!empty($_SESSION['vraag'][$paginanummer])) {
header("Location: ?vraag=beging");
exit();
}
?>
Waar zit de fout?
Gewijzigd op 11/12/2011 18:06:08 door Niels Veer
Je opent je while en je switch, maar waar sluit je hem?