De admin

In stap 1 hebben we dus een MySQL tabel aangemaakt waar de ip adressen van de geblockte ip adressen in komen te staan. Nu maken we een formulier waar we de ip adressen mee kunnen gaan blocken. Maar natuurlijk maken we eerst een database connectie en defineren we de tabel naam. Hieronder een heel script zeg maar, maar ik leg verder alles uit met de comment tags die je bij elke gebeurtenis ziet staan.

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
<?
    //-- eerst maken we dus de database connectie
    $mysqluser = "mysql_user";
    $mysqlpass = "mysql_pass";
    $mysqlhost = "localhost";
    $mysqldbdb = "mysql_database_naam";

    if (!@mysql_select_db($mysqldbdb, @mysql_connect($mysqlhost, $mysqluser, $mysqlpass)))
    {

        echo "<b>error</b><p>";
        echo "Er kon geen database connectie worden gemaakt.";
        exit();
    }

    
    unset($mysqluser);
    unset($mysqlpass);
    unset($mysqlhost);
    unset($mysqldbdb);
    
    //-- defineer tabelnaam
    $table = "ip_blocks";
    
    //-- als de var $ip niet geset is, laat dan het formulier zien of voeg ip toe in db
    if (!$HTTP_GET_VARS["ip"])
    {

        //-- bekijk of het formulier verzonden is en of er een IP adres is opgegeven
        if ($HTTP_POST_VARS["submit"] && $HTTP_POST_VARS["ip_adres"])
        {

            //-- probeer het ingevoerde adres uit de database te halen
            //-- zo kunnen we kijken of het er al in staat of niet...

            $checksql = "SELECT id FROM $table WHERE ip_adres = '$HTTP_POST_VARS[ip_adres]'";
            $checkres = mysql_query($checksql);
            
            //-- bekijk of er een resultaat is
            if (mysql_num_rows($checkres) >= 1)
            {

                $error = "bestaat";
            }

            //-- als er geen resultaat is ga dan verder
            else
            {
                //-- zet de huidige datum (syntax voorbeeld: 02.09.2003)
                $block_datum = date("d.m.Y");
                
                //-- zet het IP adres en de datum in de database
                $sql = "INSERT INTO $table (id, ip_adres, block_datum) VALUES ('', '$HTTP_POST_VARS[ip_adres]', '$block_datum')";
                $res = mysql_query($sql);
                
                //-- kijk of het goed is gegaan
                if ($res)
                    echo "IP adres $HTTP_POST_VARS[ip_adres] wordt vanaf nu geblokkeerd.<p>Klik <a href=\"$PHP_SELF\">hier</a> voor het formulier.";
                //-- als het niet goed is gegaan
                else
                    echo "IP adres $HTTP_POST_VARS[ip_adres] wordt NIET geblokkeerd.<p>Klik <a href=\"$PHP_SELF\">hier</a> voor het formulier.";
            }
        }

        //-- is het formulier niet verstuurd of is er een "$error", laat dan het formulier zien
        if (!$HTTP_POST_VARS["submit"] || $error)
        {

            //-- als $error geset is
            if ($error)
                echo "Het IP adres <b>$HTTP_POST_VARS[ip_adres]</b> is al geblokkeerd.<p>";
            
            echo "Klik <a href=\"$PHP_SELF?ip=all\">hier</a> voor alle geblokkeerde IP adressen<p>";
            
            //-- het formulier moet 'gepost' worden en het moet naar zichzelf ($PHP_SELF verwijzen)
            echo "<form method=\"post\" action=\"$PHP_SELF\">";
            echo "<B>Ip adres:</b> <input type=\"text\" maxlength=\"20\" name=\"ip_adres\" value=\"$HTTP_POST_VARS[ip_adres]\"><br>";
            echo "<input type=\"submit\" name=\"submit\" value=\"blokkeer\">";
            echo "</form>";
        }
    }

    //-- als $ip wel geset is, laat dan alle geblockte ip adressen zien
    else
    {
        //-- als er op een verwijder linkje is geklikt:
        if ($HTTP_GET_VARS["del"])
        {

            //-- verwijder het ip adres uit de database
            $sql = "DELETE FROM $table WHERE id = '$HTTP_GET_VARS[del]'";
            $res = mysql_query($sql);
            
            //-- kijk of het allemaal goed is gegaan
            if ($res)
                echo "Het IP adres is succesvol uit de database verwijderd.<p>Klik <a href=\"$PHP_SELF?ip=all\">hier</a> voor de lijst.";
            //-- als het niet goed is gegaan geef de volgende melding
            else
                echo "Het IP adres is niet uit de database verwijderd.<p>Klik <a href=\"$PHP_SELF?ip=all\">hier</a> voor de lijst.";
        }

        //-- laat de lijst zien
        else
        {
            echo "Klik <a href=\"$PHP_SELF\">hier</a> om een IP adres te blokkeren.<p>";
            
            //-- haal alle ip adressen uit de db
            $sql = "SELECT id,ip_adres,block_datum FROM $table ORDER BY id DESC";
            $res = mysql_query($sql);
            
            //-- maak een HTML tabel
            echo "<table border=\"1\" cellspacing=\"0\" cellpadding=\"5\" bordercolor=\"#000000\">";
            echo "<tr><td width=\"100\"><b>Ip adres</b></td><td><b>Datum blokkade</b></td><td>Verwijderen</td></tr>";
            
            //-- bekijk of er ip adressen in de bloklijst staan
            if (mysql_num_rows($res) >= 1)
            {

                //-- loop door de resultaten
                while ($row = mysql_fetch_array($res))
                {

                    echo "<tr><td>$row[ip_adres]</td><td>$row[block_datum]</td><td><a href=\"$PHP_SELF?ip=all&del=$row[id]\">del</a></td></tr>";
                }
            }

            //-- als er geen geblokkerde ip adressen zijn
            else
            {
                echo "<tr><td colspan=\"3\">Er zijn nog geen geblokkeerde ip adressen.</td></tr>";
            }

            
            echo "</table>";
        }
    }

?>


Voor een voorbeeld kun je kijken op :
www.phphulp.nl/voorbeeld/ipblock.php

« Lees de omschrijving en reacties

Inhoudsopgave

  1. De MySQL tabel
  2. De admin
  3. Bekijk of iemand geblokkeerd is

PHP tutorial opties

 
 

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.