Vorige in brouwser ongedaan maken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Niels Veer

Niels Veer

11/12/2011 16:05:01
Quote Anchor link
Hallo Allemaal,

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
 
PHP hulp

PHP hulp

23/04/2024 08:27:36
 
Jaron T

Jaron T

11/12/2011 16:28:11
Quote Anchor link
Pas controleren op het einde of de vragen goed of fout zijn.. net zoals bij elke quiz?
 
Niels Veer

Niels Veer

11/12/2011 16:30:43
Quote Anchor link
Nee, dat wil ik niet.
Ik wil dat als de bezoeker het antwoord aanklikt hij direct ziet of het goed of fout is.
 
Tobias Tobias

Tobias Tobias

11/12/2011 17:00:34
Quote Anchor link
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
 
Niels Veer

Niels Veer

11/12/2011 17:14:55
Quote Anchor link
Goed idee!
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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
session_start();
$_SESSION['vraag'] = $_SESSION['vraag'] +     '.htmlspecialchars($aBericht['vraag']).';
?>


Alleen hoe controleer ik nu of de vraag al is geweest?
Zo?:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if('.htmlspecialchars($aBericht['vraag']).' != $_SESSION['vraag']) {
    echo 'je hebt deze vraag al beantwoord!'
}
?>


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
 
Tobias Tobias

Tobias Tobias

11/12/2011 17:34:42
Quote Anchor link
Wat het handigst is om een multi-arry te maken:
bv: $_SESSION['vraag'][$vraagnummer] = 'ja';
$vraagnummer kun je dan uit de _GET halen

controle:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
if(!empty($_SESSION['vraag'][$vraagnummer])) echo 'je hebt deze vraag al beantwoord!';
?>


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.
 
Niels Veer

Niels Veer

11/12/2011 18:03:40
Quote Anchor link
Hij doet het niet, ik heb nu dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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();        
                }


?>


Waar zit de fout?
Gewijzigd op 11/12/2011 18:06:08 door Niels Veer
 
Nick Dijkstra

Nick Dijkstra

11/12/2011 20:51:46
Quote Anchor link
Je opent je while en je switch, maar waar sluit je hem?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.