Het registreren

Het registreren kan via een normaal simpel HTML formulier.

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
<?
    // maak de database connectie
    if (!@mysql_select_db("database_naam", @mysql_connect("localhost", "database_user", "database_pass")))
    {

        echo "Er kon geen connectie worden gemaakt met de database.";
        exit();
    }

    
    // functie om het e-mail adres te controleren op geldigheid
    // ten eerste of de parameters goed zijn
    // ten tweede of het domein achter het apestaartje bestaat

    function check_email($mail)
    {

        if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
        {

            $email_adres = $mail;
            $email = explode("@", $email_adres);
            
            if (gethostbyname($email[1]) == $email[1])
                 $valid = "no";
        }

        else
            $valid = "no";
            
        return $valid;
    }

    
    // functie om een random key aan te maken
    function makekey($num)
    {

        // genereer het random paswoord
        mt_srand((double)microtime()*1000000);
    
        // loop totdat het $pass(woord) dezelfde lengte heeft als $num
        while (strlen($pass) <= $num)
        {

            $i = chr(mt_rand (0,255));  
            if (eregi("^[a-z0-9]$", $i))
                $pass = $pass.$i;  
        }

    
        // return het random paswoord
        return ($pass);  
    }

    
    // defineer de tabel in een variabele
    $table = "voorbeeld_gebruikers";
    
    // defineer het activatie URL adres
    // BEGIN DE ACTIVATIE URL MET HTTP://!
    // EINDIG DE ACTIVATIE URL --ZONDER-- SLASH (/)

    $activatie_url = "http://www.phphulp.nl/voorbeeld/activatie";

    // bekijk of de username al niet in gebruik is
    if ($HTTP_POST_VARS["submit"] && $HTTP_POST_VARS["login"] && $HTTP_POST_VARS["pass"] && $HTTP_POST_VARS["email"] && !check_email($HTTP_POST_VARS["email"]))
    {

        $sql = "SELECT id FROM $table WHERE login = '$HTTP_POST_VARS[login]'";
        $res = mysql_query($sql);
        
        if (mysql_num_rows($res) >= 1)
            $usrname = 1;
    }


    // bekijk of alle velden zijn ingevuld
    if ($usrname || !$HTTP_POST_VARS["submit"] || !$HTTP_POST_VARS["login"] || !$HTTP_POST_VARS["pass"] || !$HTTP_POST_VARS["email"] || check_email($HTTP_POST_VARS["email"]))
    {

        if ($HTTP_POST_VARS["submit"])
            echo "<p><b>U heeft niet alle velden ingevuld, uw e-mail adres is niet juist of de login naam is al in gebruik.</b></p>";
        
        echo "
        <html>
        <head>
        <title>Registreren</title>
        </head>
        <body>
        
        <form method=\"post\" action=\"$PHP_SELF\">
        Login naam:<br>
        <input type=\"text\" name=\"login\" size=\"20\" maxlength=\"20\"><br>
        Wachtwoord:<br>
        <input type=\"text\" name=\"pass\" size=\"20\" maxlength=\"20\"><br>
        E-mail adres:<br>
        <input type=\"text\" name=\"email\" size=\"20\"><br>
        <input type=\"submit\" name=\"submit\" value=\"Registreren\">
        </form>
        
        </body>
        </html>"
;
    }

    // je weet nu dat alle velden ingevuld zijn
    else
    {
        
        $insert_login = addslashes($HTTP_POST_VARS[login]);
        $insert_pass = md5($HTTP_POST_VARS[pass]);
        $key = makekey(5);
        
        // zet de gegevens in de database
        $sql = "INSERT INTO $table (id, login, pass, email, activeer) VALUES ('', '$insert_login', '$insert_pass', '$HTTP_POST_VARS[email]', '$key')";
        $res = mysql_query($sql);
        
        // kijk of het invoegen in de database goed ging
        if ($res)
        {

            $aan = $HTTP_POST_VARS[email];
            $subject = "Account activatie";
            $van = "Webmaster <[email protected]>";
            
            $bericht = "===========================================\n";
            $bericht .= "Account activeren\n";
            $bericht .= "===========================================\n\n";
            
            $bericht .= "Uw account is aangemaakt. Het moet alleen nog even \n";
            $bericht .= "geactiveerd worden.\n\n";
            
            $bericht .= "Uw login naam: $HTTP_POST_VARS[login]\n";
            $bericht .= "Uw wachtwoord: $HTTP_POST_VARS[pass]\n\n";
            
            $bericht .= "Uw wachtwoord is encrypted opgeslagen en kan dus \n";
            $bericht .= "niet worden opgevragen. Schrijft u uw wachtwoord \n";
            $bericht .= "daarom op.\n\n";
            
            $bericht .= "Activatie URL:\n";
            $bericht .= "$activatie_url/activeer.php?email=$aan&key=$key\n\n";
            
            $bericht .= "Bedankt voor het registreren.\n\n";
            
            $bericht .= "===========================================\n";
            $bericht .= "Einde automatisch gegenereerde bericht\n";
            $bericht .= "===========================================";
            
            // kijk of de e-mail verstuurd kan worden
            if (mail($aan, $subject, $bericht, "From: $van"))
            {

                echo "<p>Uw account is aangemaakt maar u kunt nog niet inloggen.</p>";
                
                echo "<p>Er is een bevestigings e-mail gestuurd met een URL adres. U moet uw ";
                echo "account eerst activeren voordat u kunt inloggen.</p>";
            }

            // als het e-mail niet verstuurd kan worden, geef dan een error bericht
            else
            {
                echo "<p>Uw account is aangemaakt maar er kon geen e-mail verstuurd worden.</p>";
                
                echo "<p>Probeert u het opnieuw. Krijgt u dan nog steeds niet de melding ";
                echo "dat er een activatie e-mail is gestuurd, neemt u dan contact met ons op.</p>";
            }
        }

        // als het niet goed ging
        else
        {
            echo "<p>Uw account is niet aangemaakt.</p>";
            
            echo "<p>Probeer het a.u.b. nogmaals. Werkt het vervolgens weer niet, neemt dan contact op.</p>";
        }
    }

?>


Voorbeeld: www.phphulp.nl/voorbeeld/activatie/registreren.php

« Lees de omschrijving en reacties

Inhoudsopgave

  1. De MySQL tabel
  2. Het registreren
  3. Het activeren
  4. Het inloggen

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.