mysql-gastenboek-installer

Gesponsorde koppelingen

PHP script bestanden

  1. mysql-gastenboek-installer

« Lees de omschrijving en reacties

installer.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
<html>

<head>

<style type="text/css">

.body
    {
    font-family:Verdana, Arial, Helvetica, sans-serif;
    font-size:11px;
    }

</style>

<title>

Guestbook Installer

</title>

</head>

<body class="body">

Welkom bij de guestbook installer, vul hier onder uw gegevens in en klik op zend om de configuratie aan te passen en de nodige databases en tabellen te creeeren:<br><br>

<form action="<?PHP echo $_SERVER['PHP_SELF']; ?>" method="post">

<table class="body">
    <tr>
        <td>
        MySQL server adres:
        </td>
        <td>
        <input type="text" name="host"><br><br>
        </td>
    </tr>
        
    <tr>
        <td>
        MySQL username:
        </td>
        <td>
        <input type="text" name="user"><br><br>
        </td>
    </tr>
        
    <tr>
        <td>
        MySQL wachtwoord:
        </td>
        <td>
        <input type="password" name="pass"><br><br>
        </td>
    </tr>
    
    <tr>
        <td>
        Maximum aantal posts per pagina:
        </td>
        <td>
        <input type="text" name="posts_per_page"><br><br>
        </td>
    </tr>
    
    <tr>
        <td>
        Maximum aantal paginas met posts:
        </td>
        <td>
        <input type="text" name="maximum_paginas"><br><br>
        </td>
    </tr>
                
    <tr>
        <td>
        <input type="submit" name="submit" value="zend"><br><br>
        </td>
    </tr>
</table>
    
</form>

<?PHP

if(isset($_POST["submit"]))
    {

    
    $mysql = mysql_connect($_POST["host"],$_POST["user"],$_POST["pass"]) or die("De door u ingegeven gegevens waren niet correct!");
    
    $sql = "
    CREATE DATABASE IF NOT EXISTS guestbook;
    "
;
    
    $result = mysql_query($sql);
    
    if($result == 1)
        {

        echo "De database is succesvol gemaakt of bestond al....<br><br>";
        
        mysql_select_db("guestbook",$mysql);
        
        $sql = "
        CREATE TABLE IF NOT EXISTS berichten (
        `id` INT( 4 ) NOT NULL AUTO_INCREMENT ,
        `time` VARCHAR( 20 ) NOT NULL ,
        `name` VARCHAR( 50 ) NOT NULL ,
        `email` VARCHAR( 50 ) NOT NULL ,
        `bericht` VARCHAR( 50 ) NOT NULL ,
        `md5` VARCHAR( 250 ) NOT NULL ,
        PRIMARY KEY ( `id` )
        ) ENGINE = InnoDB
        "
;
        
        $result = mysql_query($sql);
        
        if($result == 1)
            {

            echo "De tabel is succesvol gemaakt of bestond al....<br><br>";
            
            edit_config();
            }

        
        else
            {
            echo "Er ging iets fout bij het creeeren van de tabel, bent u gemachtigd?<br><br>";
            echo mysql_error();
            }
        }

    else
        {
        echo "Er ging iets fout bij het creeeren van de database, bent u gemachtigd?<br><br>";
        }
    
    }
    
function
edit_config()
    {

    $pointer = fopen("index.php","r+");
    
    $inhoud = fread($pointer,filesize("index.php"));
    
    $old = array(
    "\$host = \"x\";",
    "\$user = \"x\";",
    "\$pass = \"x\";",
    "\$db = \"x\";",
    "\$posts_per_page = \"x\";",
    "\$maximum_paginas = \"x\";"
    );
    
    $new = array(
    "\$host = \"".$_POST["host"]."\";",
    "\$user = \"".$_POST["user"]."\";",
    "\$pass = \"".$_POST["pass"]."\";",
    "\$db = \"guestbook\";",
    "\$posts_per_page = \"".$_POST["posts_per_page"]."\";",
    "\$maximum_paginas = \"".$_POST["maximum_paginas"]."\";",
    );

    
    $inhoud_nieuw = str_replace($old, $new, $inhoud);
    
    rewind($pointer);
    
    fwrite($pointer,$inhoud_nieuw);
    
    fclose($pointer);
    
    echo "Variabelen aangepast in index.php, als u in het vervolg configuratie veranderingen wilt doorvoeren moet u dit handmatig doen in index.php!";
    
    }


?>



</body>

</html>


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
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
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
<?PHP

//Het adres van de mysql server, bijna altijd localhost
$host = "x";

//De mysql username
$user = "x";

//Het mysql wachtwoord
$pass = "x";

//De gewenste database
$db = "x";

//Het maximale aantal posts dat je per pagina wilt laten zien
$posts_per_page = "x";

//Het maximale aantal paginas dat je bereikbaar wilt maken
$maximum_paginas = "x";

if($host == "x" || $user == "x" || $pass == "x" || $db == "x" || $posts_per_page == "x" || $maximum_paginas == "x")
    {

    die("Niet alle configuratie instellingen zijn juist geset, draai installer.php of voer ze handmatig in aan de bovenkant van index.php!");
    }


?>


<?PHP

//Start een sessie om bijvoorbeeld flooding te voorkomen
session_start();

//Legt een verbinding met mysql
$mysql = mysql_connect($host,$user,$pass) or die("Error connecting to mysql!");

//Verbind met de database
mysql_select_db($db) or die("Error selecting database!");

?>


<html>

<head>

<style type="text/css">

.body
    {
    font-family:Verdana, Arial, Helvetica, sans-serif;
    font-size:11px;
    }

</style>

<title>
Guestbook
</title>

</head>

<body class="body" link="#000000" alink="#000000" vlink="#000000">

<?PHP

//Als de sessie variabele post niet bestaat of false is, includeer dan het formulier
if(!isset($_SESSION["post"]) || $_SESSION["post"] = false)
    {

    //Includeer het formulier
    ?>

    
    <form action="<?PHP echo $_SERVER['PHP_SELF']; ?>" method="post">

    <table class="body">
        <tr>
            <td>
            Name:
            </td>
            <td>
            <input type="text" name="name"><br><br>
            </td>
        </tr>
        
        <tr>
            <td>
            Email:
            </td>
            <td>
            <input type="text" name="email"><br><br>
            </td>
        </tr>
        
        <tr>
            <td>
            Bericht:
            </td>
            <td>
            <textarea name="bericht" cols="30" rows="5"></textarea><br><br>
            </td>
        </tr>
        
        <tr>
            <td>
            <input type="submit" name="submit" value="zend"><br><br>
            </td>
        </tr>
    </table>
    
    </form>
    
    <?php
    }

//Controleer of de submit knop is ingedrukt
if(isset($_POST["submit"]))
    {

    //Controleer of alle velden zijn ingevuld
    if(isset($_POST["name"]) && !empty($_POST["name"])
    &&
isset($_POST["email"]) && !empty($_POST["email"])
    &&
isset($_POST["bericht"]) && !empty($_POST["bericht"]))
        {

        //Checkt of er niet al gepost is dmv de sessie variabele
        if(!isset($_SESSION["post"]) || $_SESSION["post"] = false)
            {

            if(validate() == true)
                {

                //Checkt of ditzelfde bericht niet al eens gepost is dmv hash
                if(check_hash() == true)
                    {

                    //Voeg de post in via de insert_post() functie en sla de return waarde op in $result
                    $result = insert_post();
                    
                    //Als de return waarde 1 was, en het dus goed gegaan is
                    if($result == 1)
                        {

                        //Echo het bericht dat alles is goed gegaan
                        echo "Het bericht is toegevoegd!<br><br>";
                        
                        //Stelt de sessie variabele in die er voor zorgt dat er maar 1 keer gepost kan worden
                        $_SESSION["post"] = true;
                        }

                    
                    //Als de return waarde iets anders dan 1 was, en er dus iets fout ging
                    else
                        {
                        //Echo het bericht dat er iets fout ging
                        echo "Het bericht is niet toegevoegd!<br><br>";
                        
                        //En echo de eventuele mysql query error
                        echo mysql_error();
                        }
                    }

                
                //Als het wel al gepost is
                elseif(check_hash() == false)
                    {

                    //Laat de gebruiker weten dat het bericht al bestaat
                    echo "Exact ditzelfde bericht is al eens gepost, het is dus niet meer nodig!<br><br>";
                    }
                }

                
            else
                {
                echo "Het door u ingevulde email adres was niet correct!<br><br>";
                }
            }

        
        //Als er al gepost is
        else
            {
            //Echo dat er al gepost is
            echo "U heeft al gepost in deze sessie, dit is een gastenboek, geen spamboek!<br><br>";
            }
        }

    
    //Als niet alle velden waren ingevuld    
    else
        {
        //Echo dat niet alle velden waren ingevuld
        echo "Niet alle velden waren ingevuld!<br><br>";
        }
    }


//Roep de functie aan die hyperlinks naar beschikbare paginas zal tonen
show_pages();

//Roep de functie aan die er voor zorgt dat de posts van de huidige pagina getoond worden
show_posts();

mysql_close($mysql);

function
show_posts()
    {

    //Deze functie laat de posts van de huidige pagina zien
    
    //Includeer de benodigde configuratie variabelen

    global $posts_per_page, $maximum_paginas;
    
    //Als de page variabele in de url niet is geset
    if(!isset($_GET["page"]))
        {

        //Geef $page de default waarde 1
        $page = 1;
        }

    
    //Als de page variabele in de url wel is geset
    else
        {
        //Verkort de variabele
        $page = $_GET["page"];
        }

    
    //Als de waarde van page kleiner is of gelijk is aan het maximum aantal toegestane paginas wordt de rest  uitgevoerd
    if($page <= $maximum_paginas)
        {

        //Vermenigvuldigt de gewenste pagina met het gewenste aantal posts om de limit waarden vast te stellen
        $limit_start = ($page - 1) * $posts_per_page;
        $limit = $limit_start.", ".$posts_per_page;
        
        //Declareert de mysql query die nodig is om de juiste berichten uit de database te selecteren
        $sql = "
        SELECT time, name, email, bericht FROM berichten ORDER BY time DESC LIMIT "
.$limit.";
        "
;
        
        //Slaat de return waarde van de mysql quer op in result
        $result = mysql_query($sql);
        
        //Echot de eventuele mysql error
        echo mysql_error();
        
        //Ga rij voor rij de query uitvoeren en sla de waarden op in de array $row
        while($row = mysql_fetch_row($result))
            {

            //Verkort de variabelen om te verduidelijken wat wat is
            $time = $row['0'];
            $name = $row['1'];
            $email = $row['2'];
            $bericht = $row['3'];
            
            //Echo een tabel voor iedere rij            
            echo "<table class=\"body\" cellspacing=\"0\">";
            
                echo "<tr>";
                    echo "<td bgcolor=\"#CCCCCC\" width=\"300\">";
                    //Zorg er voor dat men kan mailen naar de poster door op de naam te klikken
                    echo "<a href=\"mailto:".$email."\">".$name."</a> schreef op ".$time;
                    echo "</td>";
                echo "</tr>";
            
                echo "<tr>";
                    echo "<td bgcolor=\"edecec\">";
                    //Echo het in deze rij opgehaalde bericht
                    echo $bericht;
                    echo "</td>";
                echo "</tr>";
            
            echo "<table>";
            
            echo "<br>";
            }
        }

    
    //Als blijkt dat de waarde van page hoger is dan die van het maximum toegestane paginas
    elseif($page > $maximum_paginas)
        {

        //Echo dat dit aantal paginas niet is toegestaan door de beheerder
        //Deze situatie kan niet voorkomen wanneer er gewoon op links wordt geklikt, maar alleen door een "hack" poging

        echo "Het maximum aantal paginas is door de beheerder ingesteld op ".$maximum_paginas."!";
        }
    }
    
function
insert_post()
    {

    //Deze functie injecteerd de zojuist ingevulde waarden in de database
    
    //Dit stelt het formaat van tijd vast

    $time = date("d-m-y H:i:s");
    
    //Dit declareert $hashed    
    $hashed = md5($_POST["bericht"]);
    
    //Dit declareert de query die gebruikt wordt om de ingevulde waarden te injecteren in berichten
    $sql = "
    INSERT INTO berichten
    (time, name, email, bericht, md5)
        
    VALUES
        
    ('"
.$time."',
    '"
.$_POST["name"]."',
    '"
.$_POST["email"]."',
    '"
.$_POST["bericht"]."',
    '"
.$hashed."');
    "
;
        
    //Dit slaat de return waarde op in result
    $result = mysql_query($sql);
    
    //Dit retourneert de return waarde van de MySQL query
    return $result;    
    }
    
function
show_pages()
    {

    //Deze functie laat hyperlinks naar de beschikbare paginas zien
    
    //Dit includeert de benodigde configuratie instellingen

    global $posts_per_page, $maximum_paginas;
    
    //Dit declareert de query die gebruikt wordt om het huidige aantal berichten vast te stellen
    $sql = "
    SELECT id FROM berichten;
    "
;
    
    //Dit slaat de return waarde van de query op in result
    $result = mysql_query($sql);
    
    
    //Dit telt het aantal gevonden rijen, en daarmee dus het totaal aantal posts
    $num = mysql_num_rows($result);
    
    //Als het aantal posts hoger is dan het aantal toegestane posts per pagina
    if($num > $posts_per_page)
        {

        //Deel dan het een door het ander en rond af naar boven om het benodigde aantal paginas vast te stellen
        $paginas = ceil($num/$posts_per_page);
        
        //Als de waarde van paginas na de deling hoger is dan die van het ingestelde maximum
        if($paginas > $maximum_paginas)
            {

            //Verander de waarde van paginas dan in die van het maximum toegestane aantal
            $paginas = $maximum_paginas;
            }

        
        //Laat de tekst Pagina: zien om duidelijk te maken dat er hier naar andere paginas gegaan kan worden
        echo "Pagina: ";
        
        //Voer dit net zo vaak uit als de waarde van $paginas
        for($i=1;$i<=$paginas;$i++)
            {

            //Geef een link weer met het getal van het huidige pagina nummer
            echo "<a href=\"index.php?page=".$i."\">".$i."</a>&nbsp;";
            }

        
        //Print 2 witregels voor het overzicht
        echo "<br><br>";
        }    
    }
    
function
check_hash()
    {

    //Deze functie vergelijkt de hash van het huidige bericht met dat van alle voorgaande berichten, om spam te voorkomen
    
    //Declereert hashed

    $hashed = md5($_POST["bericht"]);
    
    //Declareert de query die gebruikt wordt om te kijken of er al een row is met dezelfde md5 value
    $sql = "
    SELECT * FROM berichten WHERE md5 = '"
.$hashed."';
    "
;
    
    //Slaat de resultaten op in $result
    $result = mysql_query($sql);
    
    //Echot een eventuele mysql error    
    echo mysql_error();
    
    //Zet het aantal resultaten in $num
    $num = mysql_num_rows($result);
    
    //Als er resultaten zijn    
    if($num > 0)
        {

        //Return false
        return false;
        }

    
    //Als er geen resultaten zijn
    else
        {
        //Return true
        return true;
        }
    }
    
function
validate()
    {

    //Deze functie controleerde de integriteit van de ingevulde gegevens
    
    //Maakt de array email aan met als separator @

    $email = explode("@",$_POST["email"]);
    
    //Als er meer dan 1 elementen in de array zitten
    if(count($email) > 1)
        {

        //Herdeclereert mail maar dan met . als separator
        $email = explode(".",$_POST["email"]);
        
        //Als er meer dan 1 elementen in de array zitten
        if(count($email) > 1)
            {

            //Zet de waarde van $mail op true
            $mail = true;
            }

        
        //Zoniet
        else
            {
            //Zet de waarde van mail op false
            $mail = false;
            }        
        }

    
    //Zoniet
    else
        {
        //Zet de waarde van mail op false
        $mail = false;
        }

    
    //Als de waarde van mail true is
    if($mail == true)
        {

        //Haal rare tekens uit name
        $_POST["name"] = ereg_replace("[^A-Za-z0-9 ]", "", $_POST["name"]);
        
        //Haal rare tekens uit bericht
        $_POST["bericht"] = ereg_replace("[^A-Za-z0-9 ]", "", $_POST["bericht"]);
        
        //Retourneer true
        return true;
        }

    
    //Als de waarde van mail niet true is
    else
        {
        //Retourneer false
        return false;
        }
    }

    
?>


</body>

</html>

 
 

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.