teach-2000-overhoor-script

Gesponsorde koppelingen

PHP script bestanden

  1. teach-2000-overhoor-script

« Lees de omschrijving en reacties

--== index.php ==--

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
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
<?php

/*
    Auteur:         Mark Damen
    
    Naam:           index.php
    
    Beschrijving:   Een overzicht van alle t2k bestanden
                    
    Datum:           11-11-2006
    
*/


session_start();

function
open()
{

    //foutmeldingen uitsluiten
    if (is_array($_SESSION['questions'])){
        
        //hier een lus om r=te kijken of de sessie die nog openstaat nog echt vragen bevat
        foreach(@$_SESSION['questions'] as $key => $value)
        {

            //als de 3key die aangeeft of ie al beantwoord 0 is is er dus 1 die nog niet is beantwoord
            if ($_SESSION['questions'][$key]['already_answered'] == 0)
            {

                //open op true zetten
                $return = true;
                
                //we hebben ons antwoord al dus de lus verder laten gaan slurpt geheugen
                break;
            }
        }

        
        //als return nog niet is gemaakt dit alsnog doen en de waarde false geven
        if (!isset($return))
        {

            $return = false;
        }

        
        //return
        return $return;
   }

   else
   {
       //false returnen als questions niet bestaat
       return false;
   }
}

?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<link href="styles/style.css" rel="stylesheet" type="text/css" media="screen">
<title>
Kies uw woordenlijst
</title>
</head>
<body>

<div class="container">
    <div class="header">        
        <div class="text">
            Kies een woordenlijst
        </div>
    </div>
    
    <div class="content">
        <?php
        
        //als er nog een sessie met vragen bestaat die niet zijn beantwoord dit even weergeven        
        if (isset($_SESSION['questions']))
        {

            $open = open();
            
            //als open op true staat
            if (@$open == true)
            {

                echo "<div class=\"note\">";
                echo "<b>Let op</b>: Er staat nog een woordenlijst open van het vorige bezoek. ";
                echo "Als u een andere woordenlijst kiest wordt deze gewist. ";
                echo "Wilt u verder gaan aan uw vorige woordenlijst?<br /><br />";
                echo "<a href=\"form.php\">Doorgaan</a>";
                echo "</div>";
            }    
        }

        
        echo "<div class=\"small\">In het dropdown menu \"Vragen\" betekent V-B ook wel \"Vreemd-Bekend\" en B-V ook wel \"Bekend-Vreemd\"</div>";
        
        //de uitleg boven elk kopje
        echo "<div class=\"filename\"><b>Bestandsnaam</b></div>";
        echo "<div class=\"checkboxb\"><b>Negeren</b></div>";
        echo "<div class=\"orderb\"><b>Vragen</b></div>";
        echo "<div class=\"typeb\"><b>In Volgorde</b></div>";
        echo "<div class=\"typeb\"><b>Willekeurig</b></div><br />";
        
        //alle bestanden selecteren uit de map lists
        $files = glob("lists/*.t2k");
        
        //de lijsten sorteren
        natsort($files);
        
        //checken of er wel woordenlijsten zijn
        if ($files != false)
        {

            //alle bestanden met de extensie .t2k in een foreach doen
            foreach($files as $file)
            {

                $file = stripslashes($file);
                $file = explode("/",$file);
                $file = $file[1];
                
                echo "<form action=\"make.php\" method=\"get\">";
                
                //de bestandsnaam
                echo "<div class=\"filename\">" . $file . "</div>";
                
                //de dropdown voor het negeren van leestekens enzo
                echo "<div class=\"checkbox\">";
                echo "<select name=\"ignore\">";
                echo "<option value=\"none\">Niks negeren</a>";
                echo "<option value=\"capitals\">Hoofdletters</a>";
                echo "<option value=\"signs\">Leestekens</a>";
                echo "<option value=\"both\">Hoofdletters en leestekens</a>";
                echo "</select>";
                echo "</div>";
                
                //de dropdown voor Vreemd-Bekend en Bekend-Vreemd
                echo "<div class=\"order\">";
                echo "<select name=\"order\">";
                echo "<option value=\"B-V\">B-V</a>";
                echo "<option value=\"V-B\">V-B</a>";
                echo "</select>";
                echo "</div>";
                
                //een hidden input-veld die de bestandsnaam meesturrt
                echo "<input type=\"hidden\" name=\"file\" value=\"" . $file . "\">";
                
                //de knoppen voor In Volgorde en Door elkaar
                echo "<div class=\"type\"><input type=\"submit\" value=\"In Volgorde\" /></div>";
                echo "<div class=\"type\"><input type=\"submit\" name=\"type\" value=\"Door Elkaar\" /></div><br />";
                echo "</form>";
                
                //teller ophogen
                $i++;
            }
        }

        //als er geen woordenlijsten zijn
        else
        {
            echo "Er zijn geen woordelijsten gevonden";
        }


        ?>

    </div>

</div>
</body>
</html>


--== make.php ==--
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
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
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
<?php

/*
    Auteur:         Mark Damen
    
    Naam:           make.php
    
    Beschrijving:   Een t2k bestand wordt als xml opgeslagen
                    en zo halen we er data uit. Vervolgens
                    worden er verschillende antwoorden uitgehaalt.
                    
    Datum:          11-11-2006
    
*/


session_start();
error_reporting(E_ALL);
ini_set("display_errors", 1);
header('Content-type: text/html; charset=utf-8');

//de directory waar de t2k bestanden staan
$dir = "lists/";

//kijken of het opgevraagde bestand bestaat
if (file_exists($dir . $_GET['file']))
{

    //de bestandsnaam die is opgevraagd in een variabele zetten
    $filename = $_GET['file'];
    
    //alle data uit het bestand halen en exploden zodat we voor elke vraag incl antwoorden een waarde krijgen
    $file = file_get_contents($dir . $filename);
    $file = explode('<item id="',$file);
    
    //alvast een array maken voor de vragen
    $questions = array();
    
    //de for lus waar alle geslitste stukken uit het bestand in gaan
    for($i=1; $i<count($file); $i++)
    {

        //de vragen selecteren
        preg_match_all('/<question>(.*?)<\/question>/',$file[$i],$question1[$i]);
        preg_match_all('/<alt_questions>(.*?)<\/alt_questions>/s',$file[$i],$alt_question[$i]);
        
        //de opmerkingen selecteren
        preg_match_all('/<remarks>(.*?)<\/remarks>/',$file[$i],$remarks[$i]);
        
        //selecteren of het multiple_choise is
        preg_match_all('/<is_multiplechoice>(.*?)<\/is_multiplechoice>/',$file[$i],$multiple[$i]);
        preg_match_all('/<mc_answers>(.*?)<\/mc_answers>/',$file[$i],$multiple_answers[$i]);
                
        //de antwoorden uit de variabele halen
        preg_match_all('/<answer>(.*?)<\/answer>/s',$file[$i],$answer[$i]); //het antwoord dat altijd bestaat
        preg_match_all('/<second_answer>(.*?)<\/second_answer>/s',$file[$i],$second_answer[$i]); //het antwoordt dat soms bestaat en als second_answer in de xml staat
        preg_match_all('/<alt_answers>(.*?)<\/alt_answers>/s',$file[$i],$alt_answers[$i]); //de antwoorden die in de alt_answers staan
        
        //variabelen maken voor de vraag

        $question         = $question1[$i][1][0];
        $alt_questions     = @explode("\n", $alt_question[$i][1][0]);
        $question_final    = @array_merge(array($question), $alt_questions);
        
        //de opmerkingen
        $remarks_final     = @$remarks[$i][1][0];
        
        //multiple_choise
        $multiple_final = $multiple[$i][1][0];
        $mc_answers     = @$multiple_answers[$i][1][0];
        $mc_answers        = explode("<mc_answer id=", $mc_answers);
        $multiplechoise_answers = array();
        
        //een foreach om alle meerkeuzevragen weer eruit te halen
        foreach($mc_answers as $mc_answer)
        {

            preg_match_all('/>(.*?)<\/mc_answer>/',$mc_answer,$multiple_answer);
            $multiplechoise_answers[] = @$multiple_answer[1][0];
        }

        
        //de eerste waarde is leeg en kan dus weg
        array_shift($multiplechoise_answers);
            
        //variabelen maken voor de antwoorden
        $answer1     = $answer[$i][1][0];
        $answer2     = @$second_answer[$i][1][0];
        $answer3     = @explode("\n",$alt_answers[$i][1][0]);
        
        //een array maken met de antwoorden van $1 en $2 en 1 met de overige antwoorden
        $answers1 = array($answer1,$answer2);
        $answers2 = $answer3;
        
        //samenvoegen van arrays zodat we een overzichtelijke array krijgen
        $answers = array_merge($answers1,$answers2);
        
        //als er is gekozen voor Vreemd-Bekend, de meerkeuze worden niet omgedraaid, om vage vragen te voorkomen
        if ($_GET['order'] == "V-B" AND $multiple_final == "N")
        {

            //een tijdelijke variabele maken waarin gegevens omgekeerd opgeslagen staan
            $answers_temp = $question_final;
            $question_temp = $answers;
            
            //temps weggooien
            unset($question_final);
            unset($answers);
            
            //de uiteindelijke waardes vullen
            $answers = $answers_temp;
            $question_final = $question_temp;
            
            //temps weggooien
            unset($question_temp);
            unset($answers_temp);
        }

        
        //toevoegen aan vragen array
        $questions[] =    
            array("id" => $i,
                  "multiple" => $multiple_final,
                  "multiple_answers" => $multiplechoise_answers,
                  "questions" => $question_final,
                  "remarks" => $remarks_final,
                  "answers" => $answers,
                  "already_answered" => 0,
                  "wrong_answer" => 0
            );
    }

    
    //als er voor shuffle is gekozen
    if (isset($_GET['type']) AND $_GET['type'] == "Door Elkaar")
    {

        //shuffelen
        shuffle($questions);
        
        //een waarde aan de vragen array plakken die aangeeft of er sprake is van random volgorde
        $settings["random"] = 1;
    }

    else
    {
        //als er niet is gekozen voor random ook even aangeven
        $settings["random"] = 0;
    }

    
    
    //als er is gekozen leestekens te negeren
    if (isset($_GET['ignore']))
    {
    
        switch($_GET['ignore'])
        {
            case
'signs':
                //een waarde in de settings sessie maken de hoofdletters niet moeten worden genegeerd
                $settings['signs'] = 1;
                $settings['capitals'] = 0;
                break;
                
            case
'capitals':
                //een waarde in de settings sessie maken de leestekens niet moeten worden genegeerd
                $settings['signs'] = 0;
                $settings['capitals'] = 1;
                break;
                
            case
'both':
                //een waarde in de settings sessie maken de leestekens en de hoofdletters moeten worden genegeerd
                $settings['signs'] = 1;
                $settings['capitals'] = 1;
                break;
                
            case
'none':
                //een waarde in de settings sessie maken waarin de leestekens en de hoofdletters niet moeten worden genegeerd
                $settings['signs'] = 0;
                $settings['capitals'] = 0;
                break;
        }    
    }

    
    //als er is gekozen voor Vreemd-Bekend
    if ($_GET['order'] == "V-B")
    {

        //een waarde in de settings sessie
        $settings["order"] = "V-B";
    }

    else
    {
        //een waarde in de settings sessie
        $settings["order"] = "B-V";
    }

    
    //als de sessie status nog bestaat deze even legen
    if (isset($_SESSION['status']))
    {

        //sessie legen
        unset($_SESSION['status']);
    }

    
    //het opgevraagde bestand nog in de settings array zetten
    $settings['filename'] = $filename;
    
    //de sessie maken met de settings
    $_SESSION['settings'] = $settings;
    
    //de vragen array in een sessie zetten
    $_SESSION['questions'] = $questions;
    
    //redirect naar de pagina waar je de vragen beantwoordt
    header("Location: form.php");
}

else
{
    echo "Het opgevraagde bestand bestaat niet";
}

?>


--== form.php ==--
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
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
<?php

/*
    Auteur:         Mark Damen
    
    Naam:            form.php
    
    Beschrijving:    Het bestand waarin het antwoord op
                    de vraag wordt ingevuld en vervolgens
                    wordt de bezoeker doorgestuurt naar
                    check.php waar het antwoord wordt
                    gecontroleerd.
                    
    Datum:            11-11-2006
    
*/


session_start();
error_reporting(E_ALL);
header('Content-type: text/html; charset=utf-8');

//de functie die de goede vraag selecteert en wat gegevens achterhaalt includen
include 'functions/implode.func.php';

//de functie die de goede vraag selecteert en wat gegevens achterhaalt includen
include 'functions/forms.func.php';

//de functie die de goede vraag selecteert en wat gegevens achterhaalt includen
include 'getstuff.php';

//kijken of de sessie wel bestaat
if(!isset($_SESSION['questions']))
{

    exit("De benodigde sessie bestaat niet.");
}

?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<link href="styles/style.css" rel="stylesheet" type="text/css" media="screen">
<title>
Overhoren | <?php echo $_SESSION['settings']['filename']; ?>
</title>
</head>
<body onLoad="document.form.answer.focus()">

<div class="container">
    <div class="header">        
        <div class="select">
            <?php
                echo (($_SESSION['settings']['random'] == 1) ? "Willekeurig" : "In Volgorde");
            ?>

        </div>
            
        <div class="select">
            <?php
                if ($_SESSION['settings']['signs'] == 0 AND $_SESSION['settings']['capitals'] == 1) echo "Negeer hoofdletters";
                if ($_SESSION['settings']['signs'] == 1 AND $_SESSION['settings']['capitals'] == 0) echo "Negeer leestekens";
                if ($_SESSION['settings']['signs'] == 1 AND $_SESSION['settings']['capitals'] == 1) echo "Negeer hoofdletters en leestekens";
                if ($_SESSION['settings']['signs'] == 0 AND $_SESSION['settings']['capitals'] == 0) echo "Exact";
            ?>

        </div>
        
        <div class="count">
            Nog <?php echo $count; ?> vragen<br />
            <?php echo $false; ?> vragen fout van de <?php echo $alreadyhad; ?>
        </div>
    </div>
    
    <div class="content">
    
        <?php
        if ($count > 0)
        {

            ?>

            <div class="question">
                Vraag <?php echo $_SESSION['questions'][$qkey]["id"] . ": " . implode_question(" <span class=\"small\">of</span> ", $_SESSION['questions'][$qkey]["questions"]); ?>
            </div>
            
            <?php
            echo $_SESSION['questions'][$qkey]["remarks"];
            echo genform($qkey, $_SESSION['questions'][$qkey]["multiple"], $_SESSION['questions'][$qkey]["multiple_answers"]);
            ?>

            
            <?php
            //als de sessie is geset
            if (isset($_SESSION['status']))
            {

                //het laatset record in de array
                $max = count($_SESSION['status'])-1;
            
                //imploden van antwoorden
                $the_answers = implode_question(" <span class=\"small\">of</span> ", $_SESSION['status'][$max]["session_answers"]);
                
                //in de array is 1 goed 0 fout. Aan de hand van dit goed of fout weergeven
                echo ($_SESSION['status'][$max]["status"] == 1 ? "Goed" : "<b>Fout.</b> Het moest zijn: " . $the_answers . "");
            }

            
            //een paar br's om het scherm wat hoger te maken
            echo "<br /><br /><br /><br /><br /><br />";
        }

        else
        {
            //uitrekenen van percentage goed
            $good = $alreadyhad - $false;
            $percent = $good / $alreadyhad;
            $percent = round($percent * 100);
        
            //wat dingen om de woordenlijst opnieuw te starten met de waardes die zijn opgegeven bij het overhoren
            if ($_SESSION['settings']['signs'] == 1 AND $_SESSION['settings']['capitals'] == 1) $ignore = "both";
            if ($_SESSION['settings']['signs'] == 1 AND $_SESSION['settings']['capitals'] == 0) $ignore = "signs";
            if ($_SESSION['settings']['signs'] == 0 AND $_SESSION['settings']['capitals'] == 1) $ignore = "capitals";
            if ($_SESSION['settings']['signs'] == 0 AND $_SESSION['settings']['capitals'] == 0) $ignore = "none";
            
            //nog wat dingen om de woordenlijst te herstarten
            $order = $_SESSION['settings']['order'];
            $file = $_SESSION['settings']['filename'];
            
            //de link samenstellen
            $link = "make.php?ignore=" . $ignore . "&order=" . $order . "&file=" . $file;
            
            echo "Je hebt alle vragen beantwoord<br /><br />";
            echo "Je score is " . $percent . "%<br /><br />";
            echo "<a href=\"index.php\">Nieuwe lijst kiezen</a><br />";
            echo "<a href=\"" . $link . "\">Deze lijst opnieuw starten</a><br /><br /><hr /><br />";
        }

        ?>

    </div>

</div>
</body>
</html>


--== check.php ==--
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
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
<?php

/*
    Auteur:         Mark Damen
    
    Naam:           check.php
    
    Beschrijving:   Op deze pagina worden opgegeven antwoorden
                    uit een formulier gecheckt en vervolgens
                    worden er dingen gewijzigd in de sessie
                    waaraan je kunt zien of de vraag al goed
                    is beantwoord. Zo niet kun je het aantal
                    fouten eruit halen.
                    
    Datum:          11-11-2006
    
*/


session_start();
error_reporting(E_ALL);
ini_set("display_errors", 1);
header('Content-type: text/html; charset=utf-8');

//de file met de functie voor de leestekens includen
include 'reading_signs.php';

//als er daadwerkelijk is verzonden
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{

    //als alle benodigde gegevens er wel zijn
    if (is_numeric($_POST['key']) && isset($_POST['answer']))
    {

        //variabelen aanmaken
        $key    = $_POST['key'];
        $answer = trim($_POST['answer']);
        
        //sessie in variabele zetten            
        $session = @$_SESSION['questions']; //dit is een array
        
        //de sessie verwijderen

        unset($_SESSION['questions']);
        
        //de leestekens strippen uit het antwoord als daarvoor is gekozen
        if (@$_SESSION['settings']['signs'] == 1)
        {

            $answer = reading_signs($answer);
        }


        //het antwoord converteren naar kleine letters als hofdletters moeten worden genegeerd
        if (@$_SESSION['settings']['capitals'] == 1)
        {

            //het antwoord strtolower maken
            $answer = strtolower($answer);
            
            //een lus maken om ook de antwoorden strtolower te maken
            foreach($session[$key]['answers'] as $skey => $value)
            {

                $session[$key]['answers'][$skey] = strtolower($value);
            }
        }

        
        //kijken of de opgevraagde waarde aan de hand van de key wel bestaat in de sessie
        if (is_array($session) AND is_array($_SESSION['settings']))
        {

            $status = @$_SESSION['status'];
            
            //controleren of het ingevulde antwoord voorkomt in de antwoorden array van de sessie
            if (in_array($answer, $session[$key]['answers']) AND $answer != "")
            {
                
                //de sessie setten waarin staat of het antwoord goed was
                $status[] = array("key" => $key+1, "question" => $session[$key]['questions'], "user_answer" => $answer, "session_answers" => $session[$key]['answers'], "status" => 1);
                
                //een waarde veranderen van 0 in 1 die aangeeft dat de vraag goed is beantwoord
                $session[$key]['already_answered'] = 1;
            }

            else
            {
                //de sessie setten waarin staat of het antwoord fout was
                $status[] = array("key" => $key+1, "question" => $session[$key]['questions'], "user_answer" => $answer, "session_answers" => $session[$key]['answers'], "status" => 0);
                
                //aangeven dat de vraag nog niet goed is beantwoord
                $session[$key]['already_answered'] = 0;
                
                //de waarde waarin het aantal fouten staat met 1 ophogen
                $session[$key]['wrong_answer'] = $session[$key]['wrong_answer']+1;
            }

            
            //als er is gekozen voor een willikeurige volgorde
            if (@$_SESSION['settings']['random'] == 1)
            {

                //shuffelen
                shuffle($session);
            }

            
            //de sessie opnieuw aamaken
            $_SESSION['questions']     = $session;
            $_SESSION['status']     = $status;
            
            //redirecten naar form
            header("Location: form.php");
        }

        else
        {
            echo "De opgevraagde waarde komt niet voor in de sessie";
        }
    }

    else
    {
        //niet alle benodigde post-gegevens zijn er -> foutmelding
        echo "De post-gegevens zijn niet volledig of niet correct";
    }
}


?>


--== getstuff.php ==--
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
31
32
33
34
35
36
37
38
39
40
41
<?php

//tellers op nul zetten
$count = 0;
$false = 0;
$alreadyhad = 0;

//de foreach van de sessie
foreach($_SESSION['questions'] as $key=>$value)
{

    //als de 3de waarde 0 is moet de vraag nog gesteld worden
    if ($_SESSION['questions'][$key]['already_answered'] == 0)
    {

           if (@$gotit != 1)
           {

              //variabele key maken
              $qkey = $key;
        
              //een waarde setten waardoor er geen tweede key kan komen
              $gotit = 1;
           }


        //de teller ophogen voor de vragen die nog moeten
        $count++;
    }

    else
    {
        //de teller ophogen voor het aantal vragen dat al is geweest
        $alreadyhad++;
    }

    
    if ($_SESSION['questions'][$key]['wrong_answer'] > 0)
    {

        //de false variabele ophogen met het aantal fouten die in de waarde staan
        $false = $false+$_SESSION['questions'][$key]['wrong_answer'];
        
        //als er al 1 fout is is de vraag dus ook al beantwoord
        $alreadyhad = $alreadyhad+$_SESSION['questions'][$key]['wrong_answer'];
    }
}

?>


--== reading_signs.php ==--
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

function reading_signs($input)
{

    //hier moet je dus even in de bovenste array de leestekens zetten en in de onderste array hetgene waardoor ze vervangen moeten worden
    $signs         = array("!", ",", ".","'");
    $replace     = array("", "", "", "");
    $output = str_replace($signs, $replace, $input);
    
    return $output;
}


?>


--== login.php ==--
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
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
<?php
/*
    Auteur:         Mark Damen
    
    Naam:            login.php
    
    Beschrijving:    De login pagina voor de admin
                    
    Datum:            11-11-2006
    
*/


session_start();

//de login functie includen
include 'functions/login.func.php';

//een array met username en password
$user = array("username", "password");

//als er is verzonden
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{

    //de login functie uitvoeren
    login($_POST['username'], $_POST['password'], $user);
}
        
else
{        
    ?>


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head>
    <link href="styles/style.css" rel="stylesheet" type="text/css" media="screen">
    <title>
    Kies uw woordenlijst
    </title>
    </head>
    <body>
    
    <div class="container">
        <div class="header">        
            <div class="text">
                Beheerders Login
            </div>
        </div>
        
        <div class="content">
        
            <form action="login.php" method="post">
            Gebruikersnaam:<br />
            <input type="text" name="username"><br /><br />
            
            Wachtwoord:<br />
            <input type="password" name="password"><br /><br />
            <input type="submit" value="Inloggen">
            </form>
                
        </div>
    </div>
    </body>
    </html>
    
    <?php
}
?>


--== functions/login.func.php ==--
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
<?php

function login($username, $password, $good)
{

    //als gebruikersnaam en wachtwoord kloppen
    if (($username == $good[0]) AND ($password == $good[1]))
    {

        //een sessie setten
        $_SESSION['logged_in'] = true;
        header("Location: admin/index.php");
    }

    else
    {
        return "Deze combinatie van gebruikersnaam en wachtwoord is foutief";
    }
}

?>


--== functions/forms.func.php ==--
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php

function genform($key, $multiple, $posible)
{

    //een deel van het formulier
    $return  = "<form action=\"check.php\" method=\"post\" name=\"form\">";
    
    //als multiple choise Yes is, even een formpje gegereren
    if ($multiple == "Y")
    {

        $return .= multiple($posible);
    }

    
    //het laatste deel van het formulier
    $return .= "<br /><input type=\"text\" name=\"answer\" class=\"answer\">";
    $return .= "<input type=\"hidden\" name=\"key\" value=\"" .  $key ."\">";
    $return .= "<input type=\"submit\" value=\"Controleer\" class=\"submit\"><br /><br />";
    $return .= "</form>";
    
    return $return;
}

function
multiple($posibilitys)
{

    //teller
    $i = 0;
    
    //letters in een array
    $letter = range("A", "Z");
    
    //$return op null zetten
    $return = null;
    
    //alle mogelijkheden doorlopen
    foreach($posibilitys as $posible)
    {

        $return .= $letter[$i] . ": " . $posible . "<br />";
        
        //teller ophogen
        $i++;
    }


    //return
    return $return;
}

?>


--== implode.func.php ==--
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
31
<?php

function implode_question($spacer, $array)
{

    //variabele return aanmaken zonder waarde
    $return = null;
    
    //de teller op nul zetten
    $i = 0;
    
    //de foreachlus
    foreach($array as $value)
    {

        //als de teller niet 0 is
        if ($i != 0 && !empty($value))
        {

            $return .= "<span class=\"small\">" . $spacer . "</span>" . $value;
        }

        elseif($i == 0 && !empty($value))
        {

            $return .= $value;
        }

        
        //teller ophogen
        $i++;
    }

    
    return $return;
}


?>


--== admin/index.php ==--
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
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
<?php
/*
    Auteur:         Mark Damen
    
    Naam:           index.php
    
    Beschrijving:   Een overzicht van alle t2k bestanden die
                    kunnen worden verwijderd en er kunnen
                    woordenlijsten worden toegevoegd
                    
    Datum:          11-11-2006
    
*/


session_start();

//de functie includen om een bestand te uploaden
include 'functions/upload.func.php';

//als er is ingelogd
if ($_SESSION['logged_in'] == true)
{

    //als er is verzonden
    if ($_SERVER['REQUEST_METHOD'] == "POST")
    {

        //als de functie upload "ext" teruggeeft
        if(upload() == "ext")
        {

            //een foutmelding geven dat de extensie niet is toegestaan
            echo "Het opgegeven bestand had een verkeerde extensie<br /><br />";
        }

        //als de functie upload "upload" teruggeeft
        elseif(upload() == "upload")
        {

            //de foutmelding die komt als het uploaden foutging
            echo "Er ging iets fout bij het uploaden<br /><br />";
        }
    }

    else
    {
        ?>

    
        <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
        <html>
        <head>
        <link href="style.css" rel="stylesheet" type="text/css" media="screen">
        <link href="../styles/style.css" rel="stylesheet" type="text/css" media="screen">
        <title>
        Admin ControlPanel
        </title>
        </head>
        <body>
        
        <div class="container">
            <div class="header">        
                <div class="text">
                    Admin ControlPanel
                </div>
            </div>
            
            <div class="content">
                
                <a href="logout.php">Uitloggen</a><br /><br />
                Uploaden woordenlijst
                <form action="index.php" enctype="multipart/form-data" method="post">
                <input type="file" name="file" /><br />
                <input type="submit" value="OK" /><br />
                </form><br />
                
                <b>Bestandsnaam</b><br />
                
                <?php
                
                //alle bestanden selecteren uit de map lists
                $files = glob("../lists/*.t2k");
                
                //de lijsten sorteren
                natsort($files);
                
                //checken of er wel woordenlijsten zijn
                if ($files != false)
                {

                    //alle bestanden met de extensie .t2k in een foreach doen
                    foreach($files as $file)
                    {

                        //form openen
                        echo "<form action=\"unlink.php\" method=\"post\">";
                
                        //namen van directroy's hoeven we niet. Even eruit filteren
                        $file = stripslashes($file);
                        $file = explode("/",$file);
                        $file = $file[2];
                            
                        //de bestandsnamen weergeven
                        echo "<input type=\"checkbox\" name=\"del[]\" value=\"" . $file . "\"><a href=\"download.php?file=" . $file . "\">" . $file . "</a><br />";
                    }

                    
                    //de submit-knop en het fprmuliertje sluiten
                    echo "<br /><input type=\"submit\" value=\"Verwijderen\">";
                    echo "</form>";
                }

                else
                {
                    echo "Geen bestanden gevonden<br />";
                }

                
                ?>

            </div>
        </div>
        </body>
        </html>
        <?php
    }
}

//als er niet is ingelogd
else
{
    header("Location: ../login.php");
}

?>


--== admin/download.php ==--
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
31
32
33
34
35
36
37
38
39
40
<?php
/*
    Auteur:         Mark Damen
    
    Naam:           download.php
    
    Beschrijving:   Deze pagina is ervoor om alle t2k bestanden ter download aan te bieden onder de admin
                    
    Datum:          11-11-2006
    
    Met dank aan:    PHP Newbie
    
*/


session_start();

//als er is ingelogd
if ($_SESSION['logged_in'] == true)
{

    //als het opgegeven bestand bestaat in de map lists
    if (file_exists("../lists/" . $_GET['file']))
    {

        //de header verzenden die ervoor zorgen dat er wordt gedownload
        header("Content-type: application/octet-stream");
        header("Content-Disposition: attachment; filename=" . $_GET['file']);
    }

    
    //als het opgegeven bestand niet bestaat
    else
    {
        echo "Het opgevraagde bestand bestaat niet.";
        exit();
    }
}

else
{
    //als er niet is ingelogd
    header("Location: ../login.php");
}

?>


--== admin/unlink.php ==--
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
<?php
//als er is verzonden
if ($_SERVER['REQUEST_METHOD'] == "POST")
{

    //alle opgegeven bestanden doorlopen
    foreach($_POST['del'] as $del)
    {

        //als het bestand bestaat
        if (file_exists("../lists/" . $del))
        {

            //verwijderen van het bestand
            unlink("../lists/" . $del);
        }
    }

    //redirecten naar pagina met woordenlijsten
    header("Location: index.php");
}

else
{
    //als er niet op verzonden is gedouwd hebben we hier niets te zoeken -> terug naar admin-page
    header("Location: index.php");
}

?>


--== admin/logout.php ==--
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
<?php
session_start();

//als er is ingelogd
if ($_SESSION['logged_in'] == true)
{

    session_unset();
    header("Location: ../login.php");
}

else
{
    header("Location: ../login.php");
}


?>


--== admin/functions/upload.func.php ==--
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
/*
    Auteur:         Mark Damen
    
    Naam:           upload.func.php
    
    Beschrijving:   De upload-functie
                    
    Datum:          11-11-2006
    
*/


function upload()
{

    //een rijtje met de toegestane extensies
    $extensions = array("t2k");
    
    //we hebben de extensie wel nodig. Want plaatjes hebben we niet nodig tussen de woordenlijsten
    $extension = strrev($_FILES['file']['name']);
    $extension = explode(".", $extension);
    $extension = strrev($extension[0]);
    
    //als extensie een toegelaten bestand is
    if (in_array($extension, $extensions))
    {

        if (is_uploaded_file($_FILES['file']['tmp_name']))
        {

            if (move_uploaded_file($_FILES['file']['tmp_name'], "../lists/" . $_FILES['file']['name']))
            {

                //de pagina opnieuw laden, dan zien we meteen de nieuwe woordenlijst in het rijtje
                header("Location: index.php");
            }

            else
            {
                //return upload, dan weten we waar het fout ging
                return "upload";
            }
        }

        else
        {
            //return upload, dan weten we waar het fout ging
            return "upload";
        }
    }

    
    //return ext, dan weten we waar het fout ging
    return "ext";
}


?>

 
 

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.