Script checken
Ik heb een quiz gemaakt in php, maar ik heb begrijpen in een ander toppic en op een ander form dat ik er nog al een zooitje van heb gemaakt.
Zouden jullie misschien mijn script willen bekijken en laten weten wat er mis is en hoe ik dit zou kunnen verbeteren?
Dit is het script:
<html>
<head>
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
<title>quiz</title>
<style type="text/css">
body {
background: #000000;
font-size: 13px;
font-family: Arial;
color: #939393;
text-align: left;
}
.titel {
color: #76aa00;
font-size: 25px;
}
.form {
margin: 5;
}
</style>
</head>
<body>
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
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
<?php
ini_set('display_errors', 0); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// Maak een verbinding met de database
$aErrors = array();
include('mysqlgegevens.php');
// Controleer of het gelukt is
if ( $rLink === false ) {
$aErrors[] = 'De database is onbereikbaar. Probeer het later opnieuw.';
}
else {
// Selecteer je database
$bSelected = mysql_select_db( 'plantensite', $rLink );
// Controleer of het gelukt is
if ( $bSelected === false ) {
$aErrors[] = 'De database is niet geselecteerd. Probeer het later opnieuw.';
}
else {
// Construeer een opdracht voor de database
$sQuery = "SELECT id
, vraag
, antwoordA
, antwoordB
, antwoordC
, goede_antwoord
, afbeelding
, afbeelding_thumb
FROM quiz
ORDER BY id";
// Stuur de opdracht op
$rResult = mysql_query( $sQuery, $rLink );
// Controleer of het gelukt is
if ( $rResult === false ) {
$aErrors[] = 'Het is niet gelukt de nieuwsberichten op te halen.';
}
elseif ( mysql_num_rows($rResult) == 0 ) {
$aErrors[] = 'Er zijn geen gegevens!';
}
}
}
if ( count($aErrors) > 0 ) {
echo '<p class="error">';
foreach ( $aErrors as $sError ) {
print $sError . '<br />';
}
echo '</p>';
}
// Geen fouten? Dan maken we een lijst!
else {
session_start();
session_destroy();
switch($_GET['vraag']) {
case begin:
echo '
<p class="titel">Plantenquiz moeilijk</p>
Welkom bij de plantenquiz,<br><br>
Deze quiz is wat moeilijker dan de andere quiz. U kunt op de foto klikken om deze in het groot te zien.<br>
Alle antwoorden zijn te vinden op deze site. Vals spelen is mogelijk maar niet de bedoeling.<br><br>
Druk op de knop "Start de quiz" om de quiz te starten<br><br>';
setcookie('score');
setcookie('vraagnummer');?>
ini_set('display_errors', 0); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// Maak een verbinding met de database
$aErrors = array();
include('mysqlgegevens.php');
// Controleer of het gelukt is
if ( $rLink === false ) {
$aErrors[] = 'De database is onbereikbaar. Probeer het later opnieuw.';
}
else {
// Selecteer je database
$bSelected = mysql_select_db( 'plantensite', $rLink );
// Controleer of het gelukt is
if ( $bSelected === false ) {
$aErrors[] = 'De database is niet geselecteerd. Probeer het later opnieuw.';
}
else {
// Construeer een opdracht voor de database
$sQuery = "SELECT id
, vraag
, antwoordA
, antwoordB
, antwoordC
, goede_antwoord
, afbeelding
, afbeelding_thumb
FROM quiz
ORDER BY id";
// Stuur de opdracht op
$rResult = mysql_query( $sQuery, $rLink );
// Controleer of het gelukt is
if ( $rResult === false ) {
$aErrors[] = 'Het is niet gelukt de nieuwsberichten op te halen.';
}
elseif ( mysql_num_rows($rResult) == 0 ) {
$aErrors[] = 'Er zijn geen gegevens!';
}
}
}
if ( count($aErrors) > 0 ) {
echo '<p class="error">';
foreach ( $aErrors as $sError ) {
print $sError . '<br />';
}
echo '</p>';
}
// Geen fouten? Dan maken we een lijst!
else {
session_start();
session_destroy();
switch($_GET['vraag']) {
case begin:
echo '
<p class="titel">Plantenquiz moeilijk</p>
Welkom bij de plantenquiz,<br><br>
Deze quiz is wat moeilijker dan de andere quiz. U kunt op de foto klikken om deze in het groot te zien.<br>
Alle antwoorden zijn te vinden op deze site. Vals spelen is mogelijk maar niet de bedoeling.<br><br>
Druk op de knop "Start de quiz" om de quiz te starten<br><br>';
setcookie('score');
setcookie('vraagnummer');?>
<input type="button" value="Start de quiz" onclick="location.href = '?vraag=1'" />
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
}
session_start();
if ( $_SERVER['REQUEST_METHOD'] == 'POST') {
if($_POST) {
while ( $aBericht = mysql_fetch_assoc( $rResult ) ) {
// We moeten vanwege de speciale tekens in de titel htmlspecialchars() gebruiken
// Dit zorgt ervoor dat bijvoorbeeld < en " onschadelijk worden gemaakt
$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" class="form" value="'.htmlspecialchars($aBericht['antwoordA']).'" />'; if(isset($_POST['a']) && $aBericht['goede_antwoord'] != 'A') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'A') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['a']) && $aBericht['goede_antwoord'] == 'A') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } echo '<br>';
echo 'B.<input type="submit" disabled="disabled" name="b" class="form" value="'.htmlspecialchars($aBericht['antwoordB']).'" />'; if(isset($_POST['b']) && $aBericht['goede_antwoord'] != 'B') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'B') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['b']) && $aBericht['goede_antwoord'] == 'B') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } echo '<br>';
echo 'C.<input type="submit" disabled="disabled" name="c" class="form" value="'.htmlspecialchars($aBericht['antwoordC']).'" />'; if(isset($_POST['c']) && $aBericht['goede_antwoord'] != 'C') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'C') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['c']) && $aBericht['goede_antwoord'] == 'C') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } echo '<br>';
echo '</p>
<input type="submit" name="volgendevraag" value="Volgende vraag" />
</form>
';?>
}
session_start();
if ( $_SERVER['REQUEST_METHOD'] == 'POST') {
if($_POST) {
while ( $aBericht = mysql_fetch_assoc( $rResult ) ) {
// We moeten vanwege de speciale tekens in de titel htmlspecialchars() gebruiken
// Dit zorgt ervoor dat bijvoorbeeld < en " onschadelijk worden gemaakt
$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" class="form" value="'.htmlspecialchars($aBericht['antwoordA']).'" />'; if(isset($_POST['a']) && $aBericht['goede_antwoord'] != 'A') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'A') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['a']) && $aBericht['goede_antwoord'] == 'A') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } echo '<br>';
echo 'B.<input type="submit" disabled="disabled" name="b" class="form" value="'.htmlspecialchars($aBericht['antwoordB']).'" />'; if(isset($_POST['b']) && $aBericht['goede_antwoord'] != 'B') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'B') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['b']) && $aBericht['goede_antwoord'] == 'B') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } echo '<br>';
echo 'C.<input type="submit" disabled="disabled" name="c" class="form" value="'.htmlspecialchars($aBericht['antwoordC']).'" />'; if(isset($_POST['c']) && $aBericht['goede_antwoord'] != 'C') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'C') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['c']) && $aBericht['goede_antwoord'] == 'C') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } echo '<br>';
echo '</p>
<input type="submit" name="volgendevraag" value="Volgende vraag" />
</form>
';?>
Je hebt momenteel punt(en)
Dit is vraag van de 20
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
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
<?php
if(!empty($_SESSION['vraag'][$paginanummer])) {
header("Location: ?vraag=" . mt_rand(1, 20));
exit();
}
if($_POST['volgendevraag'])
{
$_COOKIE['vraagnummer']++; setcookie('vraagnummer', $_COOKIE['vraagnummer']);
$_SESSION['vraag'][$paginanummer] = 'beantwoord';
header("Location: ?vraag=" . (intval($paginanummer)+1));
exit();
}
}
}
}
} else {
while ( $aBericht = mysql_fetch_assoc( $rResult ) ) {
// We moeten vanwege de speciale tekens in de titel htmlspecialchars() gebruiken
// Dit zorgt ervoor dat bijvoorbeeld < en " onschadelijk worden gemaakt
$paginanummer= ''.htmlspecialchars($aBericht['id']).'';
switch($_GET['vraag']) {
case $paginanummer:
echo '
<form method="post" action="" name="vraag" id="quizvraag">
<p>';
if ($aBericht['afbeelding'] != '') {
echo '<a href="afbeeldingen/' . htmlspecialchars( $aBericht['afbeelding'] ) . '" rel="lightbox"><img src="afbeeldingen/' . htmlspecialchars( $aBericht['afbeelding_thumb'] ) . '"></a><br><br>';
}
echo '
'.htmlspecialchars($aBericht['vraag']).'
</p>
<p>
A.<input type="submit" name="a" class="form" value="'.htmlspecialchars($aBericht['antwoordA']).'" /><br>
B.<input type="submit" name="b" class="form" value="'.htmlspecialchars($aBericht['antwoordB']).'" /><br>
C.<input type="submit" name="c" class="form" value="'.htmlspecialchars($aBericht['antwoordC']).'" /><br>
</p>
</form>';?>
if(!empty($_SESSION['vraag'][$paginanummer])) {
header("Location: ?vraag=" . mt_rand(1, 20));
exit();
}
if($_POST['volgendevraag'])
{
$_COOKIE['vraagnummer']++; setcookie('vraagnummer', $_COOKIE['vraagnummer']);
$_SESSION['vraag'][$paginanummer] = 'beantwoord';
header("Location: ?vraag=" . (intval($paginanummer)+1));
exit();
}
}
}
}
} else {
while ( $aBericht = mysql_fetch_assoc( $rResult ) ) {
// We moeten vanwege de speciale tekens in de titel htmlspecialchars() gebruiken
// Dit zorgt ervoor dat bijvoorbeeld < en " onschadelijk worden gemaakt
$paginanummer= ''.htmlspecialchars($aBericht['id']).'';
switch($_GET['vraag']) {
case $paginanummer:
echo '
<form method="post" action="" name="vraag" id="quizvraag">
<p>';
if ($aBericht['afbeelding'] != '') {
echo '<a href="afbeeldingen/' . htmlspecialchars( $aBericht['afbeelding'] ) . '" rel="lightbox"><img src="afbeeldingen/' . htmlspecialchars( $aBericht['afbeelding_thumb'] ) . '"></a><br><br>';
}
echo '
'.htmlspecialchars($aBericht['vraag']).'
</p>
<p>
A.<input type="submit" name="a" class="form" value="'.htmlspecialchars($aBericht['antwoordA']).'" /><br>
B.<input type="submit" name="b" class="form" value="'.htmlspecialchars($aBericht['antwoordB']).'" /><br>
C.<input type="submit" name="c" class="form" value="'.htmlspecialchars($aBericht['antwoordC']).'" /><br>
</p>
</form>';?>
Je hebt momenteel punt(en)
Dit is vraag van de 20
Code (php)
U hebt punt(en) gehaald.
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
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
<?php echo '<br><br>';
if($_COOKIE['score'] <= '0')
{
echo '<img src="images/balkje_groen.png" width="0" height="20"><img src="images/balkje_rood.png" width="200" height="20"> 0% goed<br><br>';
}
if($_COOKIE['score'] == '1')
{
echo '<img src="images/balkje_groen.png" width="10" height="20"><img src="images/balkje_rood.png" width="190" height="20"> 5% goed<br><br>';
}
if($_COOKIE['score'] == '2')
{
echo '<img src="images/balkje_groen.png" width="20" height="20"><img src="images/balkje_rood.png" width="180" height="20"> 10% goed<br><br>';
}
if($_COOKIE['score'] == '3')
{
echo '<img src="images/balkje_groen.png" width="30" height="20"><img src="images/balkje_rood.png" width="170" height="20"> 15% goed<br><br>';
}
if($_COOKIE['score'] == '4')
{
echo '<img src="images/balkje_groen.png" width="40" height="20"><img src="images/balkje_rood.png" width="160" height="20"> 20% goed<br><br>';
}
if($_COOKIE['score'] == '5')
{
echo '<img src="images/balkje_groen.png" width="50" height="20"><img src="images/balkje_rood.png" width="150" height="20"> 25% goed<br><br>';
}
if($_COOKIE['score'] == '6')
{
echo '<img src="images/balkje_groen.png" width="60" height="20"><img src="images/balkje_rood.png" width="140" height="20"> 30% goed<br><br>';
}
if($_COOKIE['score'] == '7')
{
echo '<img src="images/balkje_groen.png" width="70" height="20"><img src="images/balkje_rood.png" width="130" height="20"> 35% goed<br><br>';
}
if($_COOKIE['score'] == '8')
{
echo '<img src="images/balkje_groen.png" width="80" height="20"><img src="images/balkje_rood.png" width="120" height="20"> 40% goed<br><br>';
}
if($_COOKIE['score'] == '9')
{
echo '<img src="images/balkje_groen.png" width="90" height="20"><img src="images/balkje_rood.png" width="110" height="20"> 45% goed<br><br>';
}
if($_COOKIE['score'] == '10')
{
echo '<img src="images/balkje_groen.png" width="100" height="20"><img src="images/balkje_rood.png" width="100" height="20"> 50% goed<br><br>';
}
if($_COOKIE['score'] == '11')
{
echo '<img src="images/balkje_groen.png" width="110" height="20"><img src="images/balkje_rood.png" width="90" height="20"> 55% goed<br><br>';
}
if($_COOKIE['score'] == '12')
{
echo '<img src="images/balkje_groen.png" width="120" height="20"><img src="images/balkje_rood.png" width="80" height="20"> 60% goed<br><br>';
}
if($_COOKIE['score'] == '13')
{
echo '<img src="images/balkje_groen.png" width="130" height="20"><img src="images/balkje_rood.png" width="70" height="20"> 65% goed<br><br>';
}
if($_COOKIE['score'] == '14')
{
echo '<img src="images/balkje_groen.png" width="140" height="20"><img src="images/balkje_rood.png" width="60" height="20"> 70% goed<br><br>';
}
if($_COOKIE['score'] == '15')
{
echo '<img src="images/balkje_groen.png" width="150" height="20"><img src="images/balkje_rood.png" width="50" height="20"> 75% goed<br><br>';
}
if($_COOKIE['score'] == '16')
{
echo '<img src="images/balkje_groen.png" width="160" height="20"><img src="images/balkje_rood.png" width="40" height="20"> 80% goed<br><br>';
}
if($_COOKIE['score'] == '17')
{
echo '<img src="images/balkje_groen.png" width="170" height="20"><img src="images/balkje_rood.png" width="30" height="20"> 85% goed<br><br>';
}
if($_COOKIE['score'] == '18')
{
echo '<img src="images/balkje_groen.png" width="180" height="20"><img src="images/balkje_rood.png" width="20" height="20"> 90% goed<br><br>';
}
if($_COOKIE['score'] == '19')
{
echo '<img src="images/balkje_groen.png" width="190" height="20"><img src="images/balkje_rood.png" width="10" height="20"> 95% goed<br><br>';
}
if($_COOKIE['score'] == '20')
{
echo '<img src="images/balkje_groen.png" width="200" height="20"><img src="images/balkje_rood.png" width="0" height="20"> 100% goed<br><br>';
}
if($_COOKIE['score'] >= '15')
{
echo 'U kunt in de scorelijst komen! (Als u dit niet wilt hoeft u nergens op te klikken)<br><br>
<a href="quiz_scorelijst_invoer.php"><input type="button" value="Ja, ik wil in de scorelijst komen"></a><br><br><br>';
} else {
echo 'U komt helaas niet in aanmerking voor de scorelijst<br><br>';
}
echo '<a href="?vraag=begin"><input type="button" value="Speel de quiz opnieuw"></a>';
}
?>
if($_COOKIE['score'] <= '0')
{
echo '<img src="images/balkje_groen.png" width="0" height="20"><img src="images/balkje_rood.png" width="200" height="20"> 0% goed<br><br>';
}
if($_COOKIE['score'] == '1')
{
echo '<img src="images/balkje_groen.png" width="10" height="20"><img src="images/balkje_rood.png" width="190" height="20"> 5% goed<br><br>';
}
if($_COOKIE['score'] == '2')
{
echo '<img src="images/balkje_groen.png" width="20" height="20"><img src="images/balkje_rood.png" width="180" height="20"> 10% goed<br><br>';
}
if($_COOKIE['score'] == '3')
{
echo '<img src="images/balkje_groen.png" width="30" height="20"><img src="images/balkje_rood.png" width="170" height="20"> 15% goed<br><br>';
}
if($_COOKIE['score'] == '4')
{
echo '<img src="images/balkje_groen.png" width="40" height="20"><img src="images/balkje_rood.png" width="160" height="20"> 20% goed<br><br>';
}
if($_COOKIE['score'] == '5')
{
echo '<img src="images/balkje_groen.png" width="50" height="20"><img src="images/balkje_rood.png" width="150" height="20"> 25% goed<br><br>';
}
if($_COOKIE['score'] == '6')
{
echo '<img src="images/balkje_groen.png" width="60" height="20"><img src="images/balkje_rood.png" width="140" height="20"> 30% goed<br><br>';
}
if($_COOKIE['score'] == '7')
{
echo '<img src="images/balkje_groen.png" width="70" height="20"><img src="images/balkje_rood.png" width="130" height="20"> 35% goed<br><br>';
}
if($_COOKIE['score'] == '8')
{
echo '<img src="images/balkje_groen.png" width="80" height="20"><img src="images/balkje_rood.png" width="120" height="20"> 40% goed<br><br>';
}
if($_COOKIE['score'] == '9')
{
echo '<img src="images/balkje_groen.png" width="90" height="20"><img src="images/balkje_rood.png" width="110" height="20"> 45% goed<br><br>';
}
if($_COOKIE['score'] == '10')
{
echo '<img src="images/balkje_groen.png" width="100" height="20"><img src="images/balkje_rood.png" width="100" height="20"> 50% goed<br><br>';
}
if($_COOKIE['score'] == '11')
{
echo '<img src="images/balkje_groen.png" width="110" height="20"><img src="images/balkje_rood.png" width="90" height="20"> 55% goed<br><br>';
}
if($_COOKIE['score'] == '12')
{
echo '<img src="images/balkje_groen.png" width="120" height="20"><img src="images/balkje_rood.png" width="80" height="20"> 60% goed<br><br>';
}
if($_COOKIE['score'] == '13')
{
echo '<img src="images/balkje_groen.png" width="130" height="20"><img src="images/balkje_rood.png" width="70" height="20"> 65% goed<br><br>';
}
if($_COOKIE['score'] == '14')
{
echo '<img src="images/balkje_groen.png" width="140" height="20"><img src="images/balkje_rood.png" width="60" height="20"> 70% goed<br><br>';
}
if($_COOKIE['score'] == '15')
{
echo '<img src="images/balkje_groen.png" width="150" height="20"><img src="images/balkje_rood.png" width="50" height="20"> 75% goed<br><br>';
}
if($_COOKIE['score'] == '16')
{
echo '<img src="images/balkje_groen.png" width="160" height="20"><img src="images/balkje_rood.png" width="40" height="20"> 80% goed<br><br>';
}
if($_COOKIE['score'] == '17')
{
echo '<img src="images/balkje_groen.png" width="170" height="20"><img src="images/balkje_rood.png" width="30" height="20"> 85% goed<br><br>';
}
if($_COOKIE['score'] == '18')
{
echo '<img src="images/balkje_groen.png" width="180" height="20"><img src="images/balkje_rood.png" width="20" height="20"> 90% goed<br><br>';
}
if($_COOKIE['score'] == '19')
{
echo '<img src="images/balkje_groen.png" width="190" height="20"><img src="images/balkje_rood.png" width="10" height="20"> 95% goed<br><br>';
}
if($_COOKIE['score'] == '20')
{
echo '<img src="images/balkje_groen.png" width="200" height="20"><img src="images/balkje_rood.png" width="0" height="20"> 100% goed<br><br>';
}
if($_COOKIE['score'] >= '15')
{
echo 'U kunt in de scorelijst komen! (Als u dit niet wilt hoeft u nergens op te klikken)<br><br>
<a href="quiz_scorelijst_invoer.php"><input type="button" value="Ja, ik wil in de scorelijst komen"></a><br><br><br>';
} else {
echo 'U komt helaas niet in aanmerking voor de scorelijst<br><br>';
}
echo '<a href="?vraag=begin"><input type="button" value="Speel de quiz opnieuw"></a>';
}
?>
</body>
</html>
Alvast heel erg bedankt!
n9iels
Code (php)
Maar waar een switch statement nu juist wel erg handig is gebruik je een oneindige rij if statements
Code (php)
Het idee van een switch statement is juist dat je op een overzichtelijke wijze een heleboel opties kan evalueren. Op het moment dat je dus 3 of meer if statements achter elkaar hebt (normaal gesproken in een if..elseif..else structuur die je ook al niet hebt) zou je bij jezelf moeten gaan afvragen of een switch niet handiger is. Maar waar je maar een if hebt staan is een switch totaal overbodig.
Overigens zie ik nu meerdere van die erg vreemde switch statements staan, waarbij het afsluitende haakje telkens ver te zoeken is. Iets doen aan je inspringen zou dus ook al erg helpen.
Gewijzigd op 20/12/2011 16:00:43 door Erwin H
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
# De breedte van de groene balk bepalen.
$width_green = $_COOKIE['score'] * 10;
# De breedte van de rode balk bepalen.
$width_red = 200 - ($_COOKIE['score'] * 10);
# Het percentage dat goed is bepalen.
$percentage = $_COOKIE['score'] * 5;
# Het behaalde resultaat weergeven.
echo '<img src="images/balkje_groen.png" width="'.$width_green.'" height="20"><img src="images/balkje_rood.png" width="'.$width_red.'" height="20"> '.$percentage.'% goed<br><br>';
?>
# De breedte van de groene balk bepalen.
$width_green = $_COOKIE['score'] * 10;
# De breedte van de rode balk bepalen.
$width_red = 200 - ($_COOKIE['score'] * 10);
# Het percentage dat goed is bepalen.
$percentage = $_COOKIE['score'] * 5;
# Het behaalde resultaat weergeven.
echo '<img src="images/balkje_groen.png" width="'.$width_green.'" height="20"><img src="images/balkje_rood.png" width="'.$width_red.'" height="20"> '.$percentage.'% goed<br><br>';
?>
Ik zie session_start tussen de html staan dat zou dus nooit moeten werken.
En waar slaat het volgende op?
Gewijzigd op 20/12/2011 16:27:31 door - Mark -
Het idee van de session_start() en daarna direct session_destroy() is dat als de gene de quiz opnieuw speelt de gegevens weer 0 moeten zijn.
En laten we ook maar zeggen dat wiskunde niet mijn sterkste kant is.
Ik h had er namelijk nog nooit over gedacht dat ik vrij simpel de score keer 10 en 5 kon doen.
Ik zal de dingen die jullie hebben aangewezen verbeteren en laten weten/zien wat ik heb gemaakt.
Toevoeging op 20/12/2011 17:41:19:
Als ik de error reporting wat hoger zet krijg ik deze melding:
Notice: Use of undefined constant begin - assumed 'begin' in C:\Domains\plantennamen.sohosted.com\wwwroot\quiz_plantennamen\quiz.php on line 84
Op 84 staat dit:
83 switch($_GET['vraag']) {
84i/i] case begin:
Wat moet ik dan trouwens in plaats van die switch doen die Mark aanwijst?
Gewijzigd op 20/12/2011 16:59:39 door Niels Veer
Ik zou zeggen begin eerst eens met het opruimen van je script. Begin onder andere eens met het wat beter scheiden van je script. Je hebt nu alles door elkaar staan. HTML en PHP. Er mag best php tussen de HTML staan dat is geen probleem maar het is stukken netter en overzichtelijker als het PHP boven je HTML staat. Dan krijg je ook geen foutmeldingen van session_start() en consorten. Deze functie vindt het namelijk niet zo leuk als er output naar de browser wordt gestuurd voordat je ze aanroept. En probeer wat meer en consistent in te springen. Ik zie nog stukken met 3 keer een } onder elkaar. Dit maakt het er niet overzichtelijker op.
Als we het toch over het opruimen van je script hebben. Waarom gebruik je zowel cookies als sessions? Je kunt net zo goed 1 van de 2 kiezen. Je weet het verschil tussen een cookie en een session neem ik aan?
Om een antwoord op je laatste vraag te geven. Er moeten quotes om begin heen want het is een string.
De switch waar jij denkt dat ik naar verwijs is de andere switch waar Erwin het over had. Je hebt maar een paar opties dus die kan je net zo goed in een if else struktuur.
Ik heb nu dit:
<html>
<head>
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
<title>quiz</title>
<style type="text/css">
body {
background: #000000;
font-size: 13px;
font-family: Arial;
color: #939393;
text-align: left;
}
.titel {
color: #76aa00;
font-size: 25px;
}
.form {
margin: 5;
}
</style>
</head>
<body>
<p class="titel">Plantenquiz moeilijk</p>
Welkom bij de plantenquiz,<br><br>
Deze quiz is wat moeilijker dan de andere quiz. U kunt op de foto klikken om deze in het groot te zien.<br>
Alle antwoorden zijn te vinden op deze site. Vals spelen is mogelijk maar niet de bedoeling.<br><br>
Druk op de knop "Start de quiz" om de quiz te starten<br><br>
<input type="button" value="Start de quiz" onclick="location.href = '?vraag=1'" />
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
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
<?php
}
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// Maak een verbinding met de database
$aErrors = array();
include('mysqlgegevens.php');
// Controleer of het gelukt is
if ( $rLink === false ) {
$aErrors[] = 'De database is onbereikbaar. Probeer het later opnieuw.';
}
else {
// Selecteer je database
$bSelected = mysql_select_db( 'plantensite', $rLink );
// Controleer of het gelukt is
if ( $bSelected === false ) {
$aErrors[] = 'De database is niet geselecteerd. Probeer het later opnieuw.';
}
else {
// Construeer een opdracht voor de database
$sQuery = "SELECT id
, vraag
, antwoordA
, antwoordB
, antwoordC
, goede_antwoord
, afbeelding
, afbeelding_thumb
FROM quiz
ORDER BY id";
// Stuur de opdracht op
$rResult = mysql_query( $sQuery, $rLink );
// Controleer of het gelukt is
if ( $rResult === false ) {
$aErrors[] = 'Het is niet gelukt de nieuwsberichten op te halen.';
}
elseif ( mysql_num_rows($rResult) == 0 ) {
$aErrors[] = 'Er zijn geen gegevens!';
}
}
}
if ( count($aErrors) > 0 ) {
echo '<p class="error">';
foreach ( $aErrors as $sError ) {
print $sError . '<br />';
}
echo '</p>';
}
// Geen fouten? Dan maken we een lijst!
else {
session_start();
session_destroy();
session_start();
setcookie('score');
setcookie('vraagnummer');
if ( $_SERVER['REQUEST_METHOD'] == 'POST') {
if($_POST) {
while ( $aBericht = mysql_fetch_assoc( $rResult ) ) {
// We moeten vanwege de speciale tekens in de titel htmlspecialchars() gebruiken
// Dit zorgt ervoor dat bijvoorbeeld < en " onschadelijk worden gemaakt
$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" class="form" value="'.htmlspecialchars($aBericht['antwoordA']).'" />'; if(isset($_POST['a']) && $aBericht['goede_antwoord'] != 'A') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'A') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['a']) && $aBericht['goede_antwoord'] == 'A') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } echo '<br>';
echo 'B.<input type="submit" disabled="disabled" name="b" class="form" value="'.htmlspecialchars($aBericht['antwoordB']).'" />'; if(isset($_POST['b']) && $aBericht['goede_antwoord'] != 'B') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'B') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['b']) && $aBericht['goede_antwoord'] == 'B') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } echo '<br>';
echo 'C.<input type="submit" disabled="disabled" name="c" class="form" value="'.htmlspecialchars($aBericht['antwoordC']).'" />'; if(isset($_POST['c']) && $aBericht['goede_antwoord'] != 'C') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'C') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['c']) && $aBericht['goede_antwoord'] == 'C') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } echo '<br>';
echo '</p>
<input type="submit" name="volgendevraag" value="Volgende vraag" />
</form>
';?>
}
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// Maak een verbinding met de database
$aErrors = array();
include('mysqlgegevens.php');
// Controleer of het gelukt is
if ( $rLink === false ) {
$aErrors[] = 'De database is onbereikbaar. Probeer het later opnieuw.';
}
else {
// Selecteer je database
$bSelected = mysql_select_db( 'plantensite', $rLink );
// Controleer of het gelukt is
if ( $bSelected === false ) {
$aErrors[] = 'De database is niet geselecteerd. Probeer het later opnieuw.';
}
else {
// Construeer een opdracht voor de database
$sQuery = "SELECT id
, vraag
, antwoordA
, antwoordB
, antwoordC
, goede_antwoord
, afbeelding
, afbeelding_thumb
FROM quiz
ORDER BY id";
// Stuur de opdracht op
$rResult = mysql_query( $sQuery, $rLink );
// Controleer of het gelukt is
if ( $rResult === false ) {
$aErrors[] = 'Het is niet gelukt de nieuwsberichten op te halen.';
}
elseif ( mysql_num_rows($rResult) == 0 ) {
$aErrors[] = 'Er zijn geen gegevens!';
}
}
}
if ( count($aErrors) > 0 ) {
echo '<p class="error">';
foreach ( $aErrors as $sError ) {
print $sError . '<br />';
}
echo '</p>';
}
// Geen fouten? Dan maken we een lijst!
else {
session_start();
session_destroy();
session_start();
setcookie('score');
setcookie('vraagnummer');
if ( $_SERVER['REQUEST_METHOD'] == 'POST') {
if($_POST) {
while ( $aBericht = mysql_fetch_assoc( $rResult ) ) {
// We moeten vanwege de speciale tekens in de titel htmlspecialchars() gebruiken
// Dit zorgt ervoor dat bijvoorbeeld < en " onschadelijk worden gemaakt
$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" class="form" value="'.htmlspecialchars($aBericht['antwoordA']).'" />'; if(isset($_POST['a']) && $aBericht['goede_antwoord'] != 'A') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'A') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['a']) && $aBericht['goede_antwoord'] == 'A') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } echo '<br>';
echo 'B.<input type="submit" disabled="disabled" name="b" class="form" value="'.htmlspecialchars($aBericht['antwoordB']).'" />'; if(isset($_POST['b']) && $aBericht['goede_antwoord'] != 'B') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'B') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['b']) && $aBericht['goede_antwoord'] == 'B') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } echo '<br>';
echo 'C.<input type="submit" disabled="disabled" name="c" class="form" value="'.htmlspecialchars($aBericht['antwoordC']).'" />'; if(isset($_POST['c']) && $aBericht['goede_antwoord'] != 'C') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'C') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['c']) && $aBericht['goede_antwoord'] == 'C') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } echo '<br>';
echo '</p>
<input type="submit" name="volgendevraag" value="Volgende vraag" />
</form>
';?>
Je hebt momenteel punt(en)
Dit is vraag van de 20
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
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
<?php
if(!empty($_SESSION['vraag'][$paginanummer])) {
header("Location: ?vraag=" . (intval($paginanummer)+1));
exit();
}
if($_POST['volgendevraag'])
{
$_COOKIE['vraagnummer']++; setcookie('vraagnummer', $_COOKIE['vraagnummer']);
$_SESSION['vraag'][$paginanummer] = 'beantwoord';
header("Location: ?vraag=" . (intval($paginanummer)+1));
exit();
}
}
}
}
} else {
while ( $aBericht = mysql_fetch_assoc( $rResult ) ) {
// We moeten vanwege de speciale tekens in de titel htmlspecialchars() gebruiken
// Dit zorgt ervoor dat bijvoorbeeld < en " onschadelijk worden gemaakt
$paginanummer= ''.htmlspecialchars($aBericht['id']).'';
switch($_GET['vraag']) {
case $paginanummer:
echo '
<form method="post" action="" name="vraag" id="quizvraag">
<p>';
if ($aBericht['afbeelding'] != '') {
echo '<a href="afbeeldingen/' . htmlspecialchars( $aBericht['afbeelding'] ) . '" rel="lightbox"><img src="afbeeldingen/' . htmlspecialchars( $aBericht['afbeelding_thumb'] ) . '"></a><br><br>';
}
echo '
'.htmlspecialchars($aBericht['vraag']).'
</p>
<p>
A.<input type="submit" name="a" class="form" value="'.htmlspecialchars($aBericht['antwoordA']).'" /><br>
B.<input type="submit" name="b" class="form" value="'.htmlspecialchars($aBericht['antwoordB']).'" /><br>
C.<input type="submit" name="c" class="form" value="'.htmlspecialchars($aBericht['antwoordC']).'" /><br>
</p>
</form>';?>
if(!empty($_SESSION['vraag'][$paginanummer])) {
header("Location: ?vraag=" . (intval($paginanummer)+1));
exit();
}
if($_POST['volgendevraag'])
{
$_COOKIE['vraagnummer']++; setcookie('vraagnummer', $_COOKIE['vraagnummer']);
$_SESSION['vraag'][$paginanummer] = 'beantwoord';
header("Location: ?vraag=" . (intval($paginanummer)+1));
exit();
}
}
}
}
} else {
while ( $aBericht = mysql_fetch_assoc( $rResult ) ) {
// We moeten vanwege de speciale tekens in de titel htmlspecialchars() gebruiken
// Dit zorgt ervoor dat bijvoorbeeld < en " onschadelijk worden gemaakt
$paginanummer= ''.htmlspecialchars($aBericht['id']).'';
switch($_GET['vraag']) {
case $paginanummer:
echo '
<form method="post" action="" name="vraag" id="quizvraag">
<p>';
if ($aBericht['afbeelding'] != '') {
echo '<a href="afbeeldingen/' . htmlspecialchars( $aBericht['afbeelding'] ) . '" rel="lightbox"><img src="afbeeldingen/' . htmlspecialchars( $aBericht['afbeelding_thumb'] ) . '"></a><br><br>';
}
echo '
'.htmlspecialchars($aBericht['vraag']).'
</p>
<p>
A.<input type="submit" name="a" class="form" value="'.htmlspecialchars($aBericht['antwoordA']).'" /><br>
B.<input type="submit" name="b" class="form" value="'.htmlspecialchars($aBericht['antwoordB']).'" /><br>
C.<input type="submit" name="c" class="form" value="'.htmlspecialchars($aBericht['antwoordC']).'" /><br>
</p>
</form>';?>
Je hebt momenteel punt(en)
Dit is vraag van de 20
Code (php)
U hebt punt(en) gehaald.
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php echo '<br><br>';
# De breedte van de groene balk bepalen.
$width_green = $_COOKIE['score'] * 10;
# De breedte van de rode balk bepalen.
$width_red = 200 - ($_COOKIE['score'] * 10);
# Het percentage dat goed is bepalen.
$percentage = $_COOKIE['score'] * 5;
# Het behaalde resultaat weergeven.
echo '<img src="images/balkje_groen.png" width="'.$width_green.'" height="20"><img src="images/balkje_rood.png" width="'.$width_red.'" height="20"> '.$percentage.'% goed<br><br>';
if($_COOKIE['score'] >= '15')
{
echo 'U kunt in de scorelijst komen! (Als u dit niet wilt hoeft u nergens op te klikken)<br><br>
<a href="quiz_scorelijst_invoer.php"><input type="button" value="Ja, ik wil in de scorelijst komen"></a><br><br><br>';
} else {
echo 'U komt helaas niet in aanmerking voor de scorelijst<br><br>';
}
echo '<a href="?vraag=begin"><input type="button" value="Speel de quiz opnieuw"></a>';
}
?>
# De breedte van de groene balk bepalen.
$width_green = $_COOKIE['score'] * 10;
# De breedte van de rode balk bepalen.
$width_red = 200 - ($_COOKIE['score'] * 10);
# Het percentage dat goed is bepalen.
$percentage = $_COOKIE['score'] * 5;
# Het behaalde resultaat weergeven.
echo '<img src="images/balkje_groen.png" width="'.$width_green.'" height="20"><img src="images/balkje_rood.png" width="'.$width_red.'" height="20"> '.$percentage.'% goed<br><br>';
if($_COOKIE['score'] >= '15')
{
echo 'U kunt in de scorelijst komen! (Als u dit niet wilt hoeft u nergens op te klikken)<br><br>
<a href="quiz_scorelijst_invoer.php"><input type="button" value="Ja, ik wil in de scorelijst komen"></a><br><br><br>';
} else {
echo 'U komt helaas niet in aanmerking voor de scorelijst<br><br>';
}
echo '<a href="?vraag=begin"><input type="button" value="Speel de quiz opnieuw"></a>';
}
?>
</body>
</html>
Ik zit nu alleen nog met het volgende:
Ik wil graag enkel met sessies gaan werken omdat dat handiger is.
Ik weet dat als je een sessie wilt legen je session_destroy(); gebruikt.
Nu moet de de sessies die ik aanmaak geleegd worden zodra je de quiz opnieuw speelt, want anders het je natuurlijk precies het zelfde aantal punten.
Hoe kan ik dit doen?
Ik had al ontdekt dat dit niet echt werkt:
Niels van der Veer op 21/12/2011 14:49:46:
Ik had al ontdekt dat dit niet echt werkt:
Waarom denk je dat? Hiermee vernietig je de oude session en maak je direct een (lege) nieuwe aan.
$_SESSION = array();
Als ik dit bovenaan het script neer zet dan houd hij de sessie niet bij, want als ik een antwoord nog een keer post wordt deze toch gepost.
Kan iemand met op weg helpen?
Zoals ik al zei, het vernietigt de oude session.
Dit is nu het script:
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
<?php
session_start();
session_destroy();
<html>
<head>
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
<title>quiz</title>
<style type="text/css">
body {
background: #000000;
font-size: 13px;
font-family: Arial;
color: #939393;
text-align: left;
}
.titel {
color: #76aa00;
font-size: 25px;
}
.form {
margin: 5;
}
</style>
</head>
<body>
<?php switch($_GET['vraag']) {
case 'begin': ?>
<p class="titel">Plantenquiz moeilijk</p>
Welkom bij de plantenquiz,<br><br>
Deze quiz is wat moeilijker dan de andere quiz. U kunt op de foto klikken om deze in het groot te zien.<br>
Alle antwoorden zijn te vinden op deze site. Vals spelen is mogelijk maar niet de bedoeling.<br><br>
Druk op de knop "Start de quiz" om de quiz te starten<br><br>
<input type="button" value="Start de quiz" onclick="location.href = '?vraag=1'" />
<?php
setcookie('score');
setcookie('vraagnummer');
}
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// Maak een verbinding met de database
$aErrors = array();
include('mysqlgegevens.php');
// Controleer of het gelukt is
if ( $rLink === false ) {
$aErrors[] = 'De database is onbereikbaar. Probeer het later opnieuw.';
}
else {
// Selecteer je database
$bSelected = mysql_select_db( 'plantensite', $rLink );
// Controleer of het gelukt is
if ( $bSelected === false ) {
$aErrors[] = 'De database is niet geselecteerd. Probeer het later opnieuw.';
}
else {
// Construeer een opdracht voor de database
$sQuery = "SELECT id
, vraag
, antwoordA
, antwoordB
, antwoordC
, goede_antwoord
, afbeelding
, afbeelding_thumb
FROM quiz
ORDER BY id";
// Stuur de opdracht op
$rResult = mysql_query( $sQuery, $rLink );
// Controleer of het gelukt is
if ( $rResult === false ) {
$aErrors[] = 'Het is niet gelukt de nieuwsberichten op te halen.';
}
elseif ( mysql_num_rows($rResult) == 0 ) {
$aErrors[] = 'Er zijn geen gegevens!';
}
}
}
if ( count($aErrors) > 0 ) {
echo '<p class="error">';
foreach ( $aErrors as $sError ) {
print $sError . '<br />';
}
echo '</p>';
}
// Geen fouten? Dan maken we een lijst!
else {
session_start();
if ( $_SERVER['REQUEST_METHOD'] == 'POST') {
if($_POST) {
while ( $aBericht = mysql_fetch_assoc( $rResult ) ) {
// We moeten vanwege de speciale tekens in de titel htmlspecialchars() gebruiken
// Dit zorgt ervoor dat bijvoorbeeld < en " onschadelijk worden gemaakt
$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" class="form" value="'.htmlspecialchars($aBericht['antwoordA']).'" />'; if(isset($_POST['a']) && $aBericht['goede_antwoord'] != 'A') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'A') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['a']) && $aBericht['goede_antwoord'] == 'A') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } echo '<br>';
echo 'B.<input type="submit" disabled="disabled" name="b" class="form" value="'.htmlspecialchars($aBericht['antwoordB']).'" />'; if(isset($_POST['b']) && $aBericht['goede_antwoord'] != 'B') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'B') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['b']) && $aBericht['goede_antwoord'] == 'B') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } echo '<br>';
echo 'C.<input type="submit" disabled="disabled" name="c" class="form" value="'.htmlspecialchars($aBericht['antwoordC']).'" />'; if(isset($_POST['c']) && $aBericht['goede_antwoord'] != 'C') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'C') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['c']) && $aBericht['goede_antwoord'] == 'C') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } echo '<br>';
echo '</p>
<input type="submit" name="volgendevraag" id="volgendevraag" value="Volgende vraag" />
</form>
';?>
Je hebt momenteel <?php echo $_COOKIE['score']; ?> punt(en)<?php echo '<br><br>';?>
Dit is vraag <?php echo $_COOKIE['vraagnummer']; ?> van de 20 <?php
if(!empty($_SESSION['vraag'][$paginanummer])) {
header("Location: ?vraag=" . (intval($paginanummer)+1));
exit();
}
if($_POST['volgendevraag'])
{
$_COOKIE['vraagnummer']++; setcookie('vraagnummer', $_COOKIE['vraagnummer']);
$_SESSION['vraag'][$paginanummer] = 'beantwoord';
header("Location: ?vraag=" . (intval($paginanummer)+1));
exit();
}
}
}
}
} else {
while ( $aBericht = mysql_fetch_assoc( $rResult ) ) {
// We moeten vanwege de speciale tekens in de titel htmlspecialchars() gebruiken
// Dit zorgt ervoor dat bijvoorbeeld < en " onschadelijk worden gemaakt
$paginanummer= ''.htmlspecialchars($aBericht['id']).'';
switch($_GET['vraag']) {
case $paginanummer:
echo '
<form method="post" action="" name="vraag" id="quizvraag">
<p>';
if ($aBericht['afbeelding'] != '') {
echo '<a href="afbeeldingen/' . htmlspecialchars( $aBericht['afbeelding'] ) . '" rel="lightbox"><img src="afbeeldingen/' . htmlspecialchars( $aBericht['afbeelding_thumb'] ) . '"></a><br><br>';
}
echo '
'.htmlspecialchars($aBericht['vraag']).'
</p>
<p>
A.<input type="submit" name="a" class="form" value="'.htmlspecialchars($aBericht['antwoordA']).'" /><br>
B.<input type="submit" name="b" class="form" value="'.htmlspecialchars($aBericht['antwoordB']).'" /><br>
C.<input type="submit" name="c" class="form" value="'.htmlspecialchars($aBericht['antwoordC']).'" /><br>
</p>
</form>';?>
Je hebt momenteel <?php echo $_COOKIE['score']; ?> punt(en)<?php echo '<br><br>';?>
Dit is vraag <?php echo $_COOKIE['vraagnummer']; ?> van de 20 <?php
}
}
}
}
switch($_GET['vraag']) {
case '21':
echo 'U bent nu klaar met de quiz.<br><br>'; ?>
U hebt <?php echo $_COOKIE['score']; ?> punt(en) gehaald.<?php echo '<br><br>';
# De breedte van de groene balk bepalen.
$width_green = $_COOKIE['score'] * 10;
# De breedte van de rode balk bepalen.
$width_red = 200 - ($_COOKIE['score'] * 10);
# Het percentage dat goed is bepalen.
$percentage = $_COOKIE['score'] * 5;
# Het behaalde resultaat weergeven.
echo '<img src="images/balkje_groen.png" width="'.$width_green.'" height="20"><img src="images/balkje_rood.png" width="'.$width_red.'" height="20"> '.$percentage.'% goed<br><br>';
if($_COOKIE['score'] >= '15')
{
echo 'U kunt in de scorelijst komen! (Als u dit niet wilt hoeft u nergens op te klikken)<br><br>
<a href="quiz_scorelijst_invoer.php"><input type="button" value="Ja, ik wil in de scorelijst komen"></a><br><br><br>';
} else {
echo 'U komt helaas niet in aanmerking voor de scorelijst<br><br>';
}
echo '<a href="?vraag=begin"><input type="button" value="Speel de quiz opnieuw"></a>';
}
?>
</body>
</html>
?>
session_start();
session_destroy();
<html>
<head>
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
<title>quiz</title>
<style type="text/css">
body {
background: #000000;
font-size: 13px;
font-family: Arial;
color: #939393;
text-align: left;
}
.titel {
color: #76aa00;
font-size: 25px;
}
.form {
margin: 5;
}
</style>
</head>
<body>
<?php switch($_GET['vraag']) {
case 'begin': ?>
<p class="titel">Plantenquiz moeilijk</p>
Welkom bij de plantenquiz,<br><br>
Deze quiz is wat moeilijker dan de andere quiz. U kunt op de foto klikken om deze in het groot te zien.<br>
Alle antwoorden zijn te vinden op deze site. Vals spelen is mogelijk maar niet de bedoeling.<br><br>
Druk op de knop "Start de quiz" om de quiz te starten<br><br>
<input type="button" value="Start de quiz" onclick="location.href = '?vraag=1'" />
<?php
setcookie('score');
setcookie('vraagnummer');
}
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// Maak een verbinding met de database
$aErrors = array();
include('mysqlgegevens.php');
// Controleer of het gelukt is
if ( $rLink === false ) {
$aErrors[] = 'De database is onbereikbaar. Probeer het later opnieuw.';
}
else {
// Selecteer je database
$bSelected = mysql_select_db( 'plantensite', $rLink );
// Controleer of het gelukt is
if ( $bSelected === false ) {
$aErrors[] = 'De database is niet geselecteerd. Probeer het later opnieuw.';
}
else {
// Construeer een opdracht voor de database
$sQuery = "SELECT id
, vraag
, antwoordA
, antwoordB
, antwoordC
, goede_antwoord
, afbeelding
, afbeelding_thumb
FROM quiz
ORDER BY id";
// Stuur de opdracht op
$rResult = mysql_query( $sQuery, $rLink );
// Controleer of het gelukt is
if ( $rResult === false ) {
$aErrors[] = 'Het is niet gelukt de nieuwsberichten op te halen.';
}
elseif ( mysql_num_rows($rResult) == 0 ) {
$aErrors[] = 'Er zijn geen gegevens!';
}
}
}
if ( count($aErrors) > 0 ) {
echo '<p class="error">';
foreach ( $aErrors as $sError ) {
print $sError . '<br />';
}
echo '</p>';
}
// Geen fouten? Dan maken we een lijst!
else {
session_start();
if ( $_SERVER['REQUEST_METHOD'] == 'POST') {
if($_POST) {
while ( $aBericht = mysql_fetch_assoc( $rResult ) ) {
// We moeten vanwege de speciale tekens in de titel htmlspecialchars() gebruiken
// Dit zorgt ervoor dat bijvoorbeeld < en " onschadelijk worden gemaakt
$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" class="form" value="'.htmlspecialchars($aBericht['antwoordA']).'" />'; if(isset($_POST['a']) && $aBericht['goede_antwoord'] != 'A') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'A') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['a']) && $aBericht['goede_antwoord'] == 'A') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } echo '<br>';
echo 'B.<input type="submit" disabled="disabled" name="b" class="form" value="'.htmlspecialchars($aBericht['antwoordB']).'" />'; if(isset($_POST['b']) && $aBericht['goede_antwoord'] != 'B') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'B') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['b']) && $aBericht['goede_antwoord'] == 'B') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } echo '<br>';
echo 'C.<input type="submit" disabled="disabled" name="c" class="form" value="'.htmlspecialchars($aBericht['antwoordC']).'" />'; if(isset($_POST['c']) && $aBericht['goede_antwoord'] != 'C') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'C') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['c']) && $aBericht['goede_antwoord'] == 'C') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } echo '<br>';
echo '</p>
<input type="submit" name="volgendevraag" id="volgendevraag" value="Volgende vraag" />
</form>
';?>
Je hebt momenteel <?php echo $_COOKIE['score']; ?> punt(en)<?php echo '<br><br>';?>
Dit is vraag <?php echo $_COOKIE['vraagnummer']; ?> van de 20 <?php
if(!empty($_SESSION['vraag'][$paginanummer])) {
header("Location: ?vraag=" . (intval($paginanummer)+1));
exit();
}
if($_POST['volgendevraag'])
{
$_COOKIE['vraagnummer']++; setcookie('vraagnummer', $_COOKIE['vraagnummer']);
$_SESSION['vraag'][$paginanummer] = 'beantwoord';
header("Location: ?vraag=" . (intval($paginanummer)+1));
exit();
}
}
}
}
} else {
while ( $aBericht = mysql_fetch_assoc( $rResult ) ) {
// We moeten vanwege de speciale tekens in de titel htmlspecialchars() gebruiken
// Dit zorgt ervoor dat bijvoorbeeld < en " onschadelijk worden gemaakt
$paginanummer= ''.htmlspecialchars($aBericht['id']).'';
switch($_GET['vraag']) {
case $paginanummer:
echo '
<form method="post" action="" name="vraag" id="quizvraag">
<p>';
if ($aBericht['afbeelding'] != '') {
echo '<a href="afbeeldingen/' . htmlspecialchars( $aBericht['afbeelding'] ) . '" rel="lightbox"><img src="afbeeldingen/' . htmlspecialchars( $aBericht['afbeelding_thumb'] ) . '"></a><br><br>';
}
echo '
'.htmlspecialchars($aBericht['vraag']).'
</p>
<p>
A.<input type="submit" name="a" class="form" value="'.htmlspecialchars($aBericht['antwoordA']).'" /><br>
B.<input type="submit" name="b" class="form" value="'.htmlspecialchars($aBericht['antwoordB']).'" /><br>
C.<input type="submit" name="c" class="form" value="'.htmlspecialchars($aBericht['antwoordC']).'" /><br>
</p>
</form>';?>
Je hebt momenteel <?php echo $_COOKIE['score']; ?> punt(en)<?php echo '<br><br>';?>
Dit is vraag <?php echo $_COOKIE['vraagnummer']; ?> van de 20 <?php
}
}
}
}
switch($_GET['vraag']) {
case '21':
echo 'U bent nu klaar met de quiz.<br><br>'; ?>
U hebt <?php echo $_COOKIE['score']; ?> punt(en) gehaald.<?php echo '<br><br>';
# De breedte van de groene balk bepalen.
$width_green = $_COOKIE['score'] * 10;
# De breedte van de rode balk bepalen.
$width_red = 200 - ($_COOKIE['score'] * 10);
# Het percentage dat goed is bepalen.
$percentage = $_COOKIE['score'] * 5;
# Het behaalde resultaat weergeven.
echo '<img src="images/balkje_groen.png" width="'.$width_green.'" height="20"><img src="images/balkje_rood.png" width="'.$width_red.'" height="20"> '.$percentage.'% goed<br><br>';
if($_COOKIE['score'] >= '15')
{
echo 'U kunt in de scorelijst komen! (Als u dit niet wilt hoeft u nergens op te klikken)<br><br>
<a href="quiz_scorelijst_invoer.php"><input type="button" value="Ja, ik wil in de scorelijst komen"></a><br><br><br>';
} else {
echo 'U komt helaas niet in aanmerking voor de scorelijst<br><br>';
}
echo '<a href="?vraag=begin"><input type="button" value="Speel de quiz opnieuw"></a>';
}
?>
</body>
</html>
?>
Gewijzigd op 23/12/2011 11:29:35 door Niels Veer
Vraag me overigens af of het echt zin heeft om telkens die hele lap code te plaatsen.
Wat wil je bereiken met
Ik wil dat als iemand de quiz opnieuw speelt de oude sessie weg wordt gegooid en een nieuwe wordt aangemaakt. Zo worden de gegevens opnieuw ingesteld.
Als je
session_start();
dan start je de sessie logisch
maar om daarna gelijk een
session_destroy();
neer tezetten werkt niet teminste niet wat jy wilt;)
want enige wat nu gebeurt is dat je session start en je session weer destroy.
Of terwijl je hebt zo niks aan je session
Maar hoe zorg ik er dan voor dat als de gebruiker de quiz opnieuw speelt hij niet de zelfde gegevens heeft?
Ik wil de score namelijk ook in sessies opslaan
Dus zoiets als:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
session_start();
if ($new_game){
$_SESSION["score"] = 0;
$_SESSION["vraag"] = 1;
//etc etc
}
?>
session_start();
if ($new_game){
$_SESSION["score"] = 0;
$_SESSION["vraag"] = 1;
//etc etc
}
?>
Je kunt toch diverse sessie variabelen aanmaken?!
Als je niet wilt dat de gebruiker dezelfde vragen krijgt, zul je (in een sessie) moeten bijhouden welke vragen al gesteld zijn.
Als je reeds gegeven antwoorden uit een sessie wilt halen, pas je voor die sessie-variabele dat toch aan?
Ik heb nu dit:
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
<?php
<html>
<head>
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
<title>quiz</title>
<style type="text/css">
body {
background: #000000;
font-size: 13px;
font-family: Arial;
color: #939393;
text-align: left;
}
.titel {
color: #76aa00;
font-size: 25px;
}
.form {
margin: 5;
}
</style>
</head>
<body>
<?php switch($_GET['vraag']) {
case 'begin': ?>
<p class="titel">Plantenquiz moeilijk</p>
Welkom bij de plantenquiz,<br><br>
Deze quiz is wat moeilijker dan de andere quiz. U kunt op de foto klikken om deze in het groot te zien.<br>
Alle antwoorden zijn te vinden op deze site. Voor elk goed antwoord krijgt u n punt.<br><br>
Druk op de knop "Start de quiz" om de quiz te starten<br><br>
<input type="button" value="Start de quiz" onclick="location.href = '?vraag=1'" />
<?php
setcookie('score');
setcookie('vraagnummer');
}
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// Maak een verbinding met de database
$aErrors = array();
include('mysqlgegevens.php');
// Controleer of het gelukt is
if ( $rLink === false ) {
$aErrors[] = 'De database is onbereikbaar. Probeer het later opnieuw.';
}
else {
// Selecteer je database
$bSelected = mysql_select_db( 'plantensite', $rLink );
// Controleer of het gelukt is
if ( $bSelected === false ) {
$aErrors[] = 'De database is niet geselecteerd. Probeer het later opnieuw.';
}
else {
// Construeer een opdracht voor de database
$sQuery = "SELECT id
, vraag
, antwoordA
, antwoordB
, antwoordC
, goede_antwoord
, afbeelding
, afbeelding_thumb
FROM quiz
ORDER BY id";
// Stuur de opdracht op
$rResult = mysql_query( $sQuery, $rLink );
// Controleer of het gelukt is
if ( $rResult === false ) {
$aErrors[] = 'Het is niet gelukt de nieuwsberichten op te halen.';
}
elseif ( mysql_num_rows($rResult) == 0 ) {
$aErrors[] = 'Er zijn geen gegevens!';
}
}
}
if ( count($aErrors) > 0 ) {
echo '<p class="error">';
foreach ( $aErrors as $sError ) {
print $sError . '<br />';
}
echo '</p>';
}
// Geen fouten? Dan maken we een lijst!
else {
session_start();
if ( $_SERVER['REQUEST_METHOD'] == 'POST') {
if($_POST) {
while ( $aBericht = mysql_fetch_assoc( $rResult ) ) {
// We moeten vanwege de speciale tekens in de titel htmlspecialchars() gebruiken
// Dit zorgt ervoor dat bijvoorbeeld < en " onschadelijk worden gemaakt
$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" class="form" value="'.htmlspecialchars($aBericht['antwoordA']).'" />'; if(!empty($_SESSION['vraag'][$paginanummer])) { header("Location: ?vraag=" . (intval($paginanummer)+1)); exit(); } if(isset($_POST['a']) && $aBericht['goede_antwoord'] != 'A') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'A') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['a']) && $aBericht['goede_antwoord'] == 'A') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } echo '<br>';
echo 'B.<input type="submit" disabled="disabled" name="b" class="form" value="'.htmlspecialchars($aBericht['antwoordB']).'" />'; if(isset($_POST['b']) && $aBericht['goede_antwoord'] != 'B') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'B') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['b']) && $aBericht['goede_antwoord'] == 'B') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } echo '<br>';
echo 'C.<input type="submit" disabled="disabled" name="c" class="form" value="'.htmlspecialchars($aBericht['antwoordC']).'" />'; if(isset($_POST['c']) && $aBericht['goede_antwoord'] != 'C') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'C') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['c']) && $aBericht['goede_antwoord'] == 'C') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } $_SESSION['vraag'][$paginanummer] = 'beantwoord'; echo '<br>';
echo '</p>
<input type="submit" name="volgendevraag" id="volgendevraag" value="Volgende vraag" />
</form>
';?>
Je hebt momenteel <?php echo $_COOKIE['score']; ?> punt(en)<?php echo '<br><br>';?>
Dit is vraag <?php echo $_COOKIE['vraagnummer']; ?> van de 20 <?php
if($_POST['volgendevraag'])
{
$_COOKIE['vraagnummer']++; setcookie('vraagnummer', $_COOKIE['vraagnummer']);
$_SESSION['vraag'][$paginanummer] = 'beantwoord';
header("Location: ?vraag=" . (intval($paginanummer)+1));
exit();
}
}
}
}
} else {
while ( $aBericht = mysql_fetch_assoc( $rResult ) ) {
// We moeten vanwege de speciale tekens in de titel htmlspecialchars() gebruiken
// Dit zorgt ervoor dat bijvoorbeeld < en " onschadelijk worden gemaakt
$paginanummer= ''.htmlspecialchars($aBericht['id']).'';
switch($_GET['vraag']) {
case $paginanummer:
echo '
<form method="post" action="" name="vraag" id="quizvraag">
<p>';
if ($aBericht['afbeelding'] != '') {
echo '<a href="afbeeldingen/' . htmlspecialchars( $aBericht['afbeelding'] ) . '" rel="lightbox"><img src="afbeeldingen/' . htmlspecialchars( $aBericht['afbeelding_thumb'] ) . '"></a><br><br>';
}
echo '
'.htmlspecialchars($aBericht['vraag']).'
</p>
<p>
A.<input type="submit" name="a" class="form" value="'.htmlspecialchars($aBericht['antwoordA']).'" /><br>
B.<input type="submit" name="b" class="form" value="'.htmlspecialchars($aBericht['antwoordB']).'" /><br>
C.<input type="submit" name="c" class="form" value="'.htmlspecialchars($aBericht['antwoordC']).'" /><br>
</p>
</form>';?>
Je hebt momenteel <?php echo $_COOKIE['score']; ?> punt(en)<?php echo '<br><br>';?>
Dit is vraag <?php echo $_COOKIE['vraagnummer']; ?> van de 20 <?php
}
}
}
}
switch($_GET['vraag']) {
case '21':
echo 'U bent nu klaar met de quiz.<br><br>'; ?>
U hebt <?php echo $_COOKIE['score']; ?> punt(en) gehaald.<?php echo '<br><br>';
# De breedte van de groene balk bepalen.
$width_green = $_COOKIE['score'] * 10;
# De breedte van de rode balk bepalen.
$width_red = 200 - ($_COOKIE['score'] * 10);
# Het percentage dat goed is bepalen.
$percentage = $_COOKIE['score'] * 5;
# Het behaalde resultaat weergeven.
echo '<img src="images/balkje_groen.png" width="'.$width_green.'" height="20"><img src="images/balkje_rood.png" width="'.$width_red.'" height="20"> '.$percentage.'% goed<br><br>';
if($_COOKIE['score'] >= '15')
{
session_destroy();
echo 'U kunt in de scorelijst komen! (Als u dit niet wilt hoeft u nergens op te klikken)<br><br>
<a href="quiz_scorelijst_invoer.php"><input type="button" value="Ja, ik wil in de scorelijst komen"></a><br><br><br>';
} else {
session_destroy();
echo 'U komt helaas niet in aanmerking voor de scorelijst<br><br>';
}
echo '<a href="?vraag=begin"><input type="button" value="Speel de quiz opnieuw"></a>';
}
?>
</body>
</html>
?>
<html>
<head>
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
<title>quiz</title>
<style type="text/css">
body {
background: #000000;
font-size: 13px;
font-family: Arial;
color: #939393;
text-align: left;
}
.titel {
color: #76aa00;
font-size: 25px;
}
.form {
margin: 5;
}
</style>
</head>
<body>
<?php switch($_GET['vraag']) {
case 'begin': ?>
<p class="titel">Plantenquiz moeilijk</p>
Welkom bij de plantenquiz,<br><br>
Deze quiz is wat moeilijker dan de andere quiz. U kunt op de foto klikken om deze in het groot te zien.<br>
Alle antwoorden zijn te vinden op deze site. Voor elk goed antwoord krijgt u n punt.<br><br>
Druk op de knop "Start de quiz" om de quiz te starten<br><br>
<input type="button" value="Start de quiz" onclick="location.href = '?vraag=1'" />
<?php
setcookie('score');
setcookie('vraagnummer');
}
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// Maak een verbinding met de database
$aErrors = array();
include('mysqlgegevens.php');
// Controleer of het gelukt is
if ( $rLink === false ) {
$aErrors[] = 'De database is onbereikbaar. Probeer het later opnieuw.';
}
else {
// Selecteer je database
$bSelected = mysql_select_db( 'plantensite', $rLink );
// Controleer of het gelukt is
if ( $bSelected === false ) {
$aErrors[] = 'De database is niet geselecteerd. Probeer het later opnieuw.';
}
else {
// Construeer een opdracht voor de database
$sQuery = "SELECT id
, vraag
, antwoordA
, antwoordB
, antwoordC
, goede_antwoord
, afbeelding
, afbeelding_thumb
FROM quiz
ORDER BY id";
// Stuur de opdracht op
$rResult = mysql_query( $sQuery, $rLink );
// Controleer of het gelukt is
if ( $rResult === false ) {
$aErrors[] = 'Het is niet gelukt de nieuwsberichten op te halen.';
}
elseif ( mysql_num_rows($rResult) == 0 ) {
$aErrors[] = 'Er zijn geen gegevens!';
}
}
}
if ( count($aErrors) > 0 ) {
echo '<p class="error">';
foreach ( $aErrors as $sError ) {
print $sError . '<br />';
}
echo '</p>';
}
// Geen fouten? Dan maken we een lijst!
else {
session_start();
if ( $_SERVER['REQUEST_METHOD'] == 'POST') {
if($_POST) {
while ( $aBericht = mysql_fetch_assoc( $rResult ) ) {
// We moeten vanwege de speciale tekens in de titel htmlspecialchars() gebruiken
// Dit zorgt ervoor dat bijvoorbeeld < en " onschadelijk worden gemaakt
$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" class="form" value="'.htmlspecialchars($aBericht['antwoordA']).'" />'; if(!empty($_SESSION['vraag'][$paginanummer])) { header("Location: ?vraag=" . (intval($paginanummer)+1)); exit(); } if(isset($_POST['a']) && $aBericht['goede_antwoord'] != 'A') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'A') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['a']) && $aBericht['goede_antwoord'] == 'A') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } echo '<br>';
echo 'B.<input type="submit" disabled="disabled" name="b" class="form" value="'.htmlspecialchars($aBericht['antwoordB']).'" />'; if(isset($_POST['b']) && $aBericht['goede_antwoord'] != 'B') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'B') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['b']) && $aBericht['goede_antwoord'] == 'B') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } echo '<br>';
echo 'C.<input type="submit" disabled="disabled" name="c" class="form" value="'.htmlspecialchars($aBericht['antwoordC']).'" />'; if(isset($_POST['c']) && $aBericht['goede_antwoord'] != 'C') { echo '<img src="images/kruisje_rood.png">'; } if($aBericht['goede_antwoord'] == 'C') { echo '<img src="images/vinkje_groen.png">'; } if(isset($_POST['c']) && $aBericht['goede_antwoord'] == 'C') { $_COOKIE['score']++; setcookie('score', $_COOKIE['score']); } $_SESSION['vraag'][$paginanummer] = 'beantwoord'; echo '<br>';
echo '</p>
<input type="submit" name="volgendevraag" id="volgendevraag" value="Volgende vraag" />
</form>
';?>
Je hebt momenteel <?php echo $_COOKIE['score']; ?> punt(en)<?php echo '<br><br>';?>
Dit is vraag <?php echo $_COOKIE['vraagnummer']; ?> van de 20 <?php
if($_POST['volgendevraag'])
{
$_COOKIE['vraagnummer']++; setcookie('vraagnummer', $_COOKIE['vraagnummer']);
$_SESSION['vraag'][$paginanummer] = 'beantwoord';
header("Location: ?vraag=" . (intval($paginanummer)+1));
exit();
}
}
}
}
} else {
while ( $aBericht = mysql_fetch_assoc( $rResult ) ) {
// We moeten vanwege de speciale tekens in de titel htmlspecialchars() gebruiken
// Dit zorgt ervoor dat bijvoorbeeld < en " onschadelijk worden gemaakt
$paginanummer= ''.htmlspecialchars($aBericht['id']).'';
switch($_GET['vraag']) {
case $paginanummer:
echo '
<form method="post" action="" name="vraag" id="quizvraag">
<p>';
if ($aBericht['afbeelding'] != '') {
echo '<a href="afbeeldingen/' . htmlspecialchars( $aBericht['afbeelding'] ) . '" rel="lightbox"><img src="afbeeldingen/' . htmlspecialchars( $aBericht['afbeelding_thumb'] ) . '"></a><br><br>';
}
echo '
'.htmlspecialchars($aBericht['vraag']).'
</p>
<p>
A.<input type="submit" name="a" class="form" value="'.htmlspecialchars($aBericht['antwoordA']).'" /><br>
B.<input type="submit" name="b" class="form" value="'.htmlspecialchars($aBericht['antwoordB']).'" /><br>
C.<input type="submit" name="c" class="form" value="'.htmlspecialchars($aBericht['antwoordC']).'" /><br>
</p>
</form>';?>
Je hebt momenteel <?php echo $_COOKIE['score']; ?> punt(en)<?php echo '<br><br>';?>
Dit is vraag <?php echo $_COOKIE['vraagnummer']; ?> van de 20 <?php
}
}
}
}
switch($_GET['vraag']) {
case '21':
echo 'U bent nu klaar met de quiz.<br><br>'; ?>
U hebt <?php echo $_COOKIE['score']; ?> punt(en) gehaald.<?php echo '<br><br>';
# De breedte van de groene balk bepalen.
$width_green = $_COOKIE['score'] * 10;
# De breedte van de rode balk bepalen.
$width_red = 200 - ($_COOKIE['score'] * 10);
# Het percentage dat goed is bepalen.
$percentage = $_COOKIE['score'] * 5;
# Het behaalde resultaat weergeven.
echo '<img src="images/balkje_groen.png" width="'.$width_green.'" height="20"><img src="images/balkje_rood.png" width="'.$width_red.'" height="20"> '.$percentage.'% goed<br><br>';
if($_COOKIE['score'] >= '15')
{
session_destroy();
echo 'U kunt in de scorelijst komen! (Als u dit niet wilt hoeft u nergens op te klikken)<br><br>
<a href="quiz_scorelijst_invoer.php"><input type="button" value="Ja, ik wil in de scorelijst komen"></a><br><br><br>';
} else {
session_destroy();
echo 'U komt helaas niet in aanmerking voor de scorelijst<br><br>';
}
echo '<a href="?vraag=begin"><input type="button" value="Speel de quiz opnieuw"></a>';
}
?>
</body>
</html>
?>
Zien jullie nog andere verbeter punten?
Niels van der Veer op 23/12/2011 11:49:29:
Laat maar, ik heb hem al werkend gekregen.
Lijkt mij stug.
Je hebt al output naar de server vóór session_start(), session_destroy() en setcookie(). Dus die zullen niet goed werken. Die werken als er nog helemaal niks naar de browser is gestuurd.
Gewijzigd op 23/12/2011 11:59:10 door - SanThe -
Dus de session_start() en de setcookie()
Toevoeging op 23/12/2011 12:35:42:
Erwin H op 23/12/2011 11:46:06:
Dus zoiets als:
Dus zoiets als:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
session_start();
if ($new_game){
$_SESSION["score"] = 0;
$_SESSION["vraag"] = 1;
//etc etc
}
?>
session_start();
if ($new_game){
$_SESSION["score"] = 0;
$_SESSION["vraag"] = 1;
//etc etc
}
?>
Wat moet er in de variabele $new_game staan dan?