url activatie systeem script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Martijn

Martijn

26/11/2006 15:06:00
Quote Anchor link
Hey,

Voor mijn website probeer ik het url activatie systeem script: http://www.phphulp.nl/php/tutorials/10/105/
te gebruiken bij mijn login en eigen database.

Nu heb ik dus de beschreven registeren.php in dit script aangepast naar mijn database, en wat dingen verbeterd/veranderd omdat het nogal een oud script is.

Mijn register.php ziet er nu zo uit:

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

        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 = "gebruiker";
    
    // defineer het activatie URL adres
    // BEGIN DE ACTIVATIE URL MET HTTP://!
    // EINDIG DE ACTIVATIE URL --ZONDER-- SLASH (/)

    $activatie_url = "http://******";

    // bekijk of de username al niet in gebruik is
    if ($_POST["submit"] && $_POST["username2"] && $_POST["wachtwoord"] && $_POST_["email"] && !check_email($_POST["email"]))
    {

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


    // bekijk of alle velden zijn ingevuld
    if ($usrname || !$_POST["submit"] || !$_POST["username2"] || !$_POST["wachtwoord"] || !$_POST["email"] || check_email($_POST["email"]))
    {

        if ($_POST["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="index.php?page=register">
        Login naam:<br>
    <table width="
200" border="0">
        <tr><td>Gebruikersnaam:</td><td><input type="
text" name="username2" maxlength="35" /></td></tr>
        <tr><td>Voornaam:</td><td><input type="
text" name="voornaam2" maxlength="35" /></td></tr>
        <tr><td>Achternaam:</td><td><input type="
text" name="achternaam2" maxlength="35" /></td></tr>
        <tr><td>Email:</td><td><input type="
text" name="email" maxlength="35" /></td></tr>
        <tr><td>Wachtwoord:</td><td><input type="
password" name="wachtwoord" maxlength="35"/></td></tr>
        <tr>
        <td>&nbsp;</td>
        </tr>( Let op! Alle velden zijn verplicht. )
    </table><br />
    Gebruikersnaam en wachtwoord moeten minimaal 5 tekens lang zijn.<br />
    <input type="
submit" name="submit" value="Registreer!"><br />
        </form>
        <a href="
index.php">Terug naar de loginpagina</a>
        </body>
        </html>"
;
    }

    // je weet nu dat alle velden ingevuld zijn
    else
    {
        
        $username2 = $_POST[username2];
    $voornaam2 = $_POST[voornaam2];
    $achternaam2 = $_POST[achternaam2];
    $email = $_POST[email];
        $key = makekey(5);
        $wachtwoord = $_POST[wachtwoord];

        // zet de gegevens in de database
        $query="INSERT INTO gebruiker (username, voornaam, achternaam, email, activeer, hash, ulevel)
                   VALUES ('$username2', '$voornaam2', '$achternaam2', '$email', '$key', PASSWORD('$wachtwoord'), 2)"
;
        $result=mysql_query($query) or die(mysql_error());
        
        // kijk of het invoegen in de database goed ging
        if ($result)
        {

            $aan = $_POST[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: $username2";
            $bericht .= "Uw wachtwoord: $wachtwoord\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>";
        }
    }

?>


Mijn database ziet er zo uit:

DROP TABLE IF EXISTS levels, gebruiker;

-- in de tabel levels worden alle levels die een account kan hebben opgeslagen
CREATE TABLE levels(
id INT NOT NULL AUTO_INCREMENT,
beschrijving VARCHAR(30) NOT NULL,
PRIMARY KEY(id)
);

-- voeg een paar test levels toe
INSERT INTO levels (beschrijving) VALUES ('Eigenaar');
INSERT INTO levels (beschrijving) VALUES ('Gast');

-- in de tabel gebruiker komen alle accounts te staan
CREATE TABLE gebruiker(
username VARCHAR(30) NOT NULL,
voornaam VARCHAR(20) NOT NULL,
achternaam VARCHAR(20) NOT NULL,
email VARCHAR(40) NOT NULL,
activeer VARCHAR(100) NULL,
hash VARCHAR(60) NOT NULL,
ulevel INT NULL,
PRIMARY KEY(username),
FOREIGN KEY(ulevel) REFERENCES levels(id)
);

-- voeg een paar test accounts toe aan de gebruikers tabel
INSERT INTO gebruiker (username, voornaam, achternaam, email, activeer, hash, ulevel) VALUES ('henk','Dirk','Henk','[email protected]', 1 ,PASSWORD('henk'), 1);

Nu krijg ik als ik naar registeren.php ga de volgende foutmelding:
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/project/2006/v1c4/public_html/inlogproject/pages/register.php on line 77

Wie weet de oplossing voor mijn probleem?

Hartelijk dank,

Martijn64
Gewijzigd op 01/01/1970 01:00:00 door Martijn
 
PHP hulp

PHP hulp

07/05/2024 15:06:12
 
Woffer

woffer

26/11/2006 15:11:00
Quote Anchor link
Wat staat er op die regel 77 ?
 
Martijn

Martijn

26/11/2006 15:11:00
Quote Anchor link
<form method="POST" action="index.php?page=register">
 
Woffer

woffer

26/11/2006 15:14:00
Quote Anchor link
Sorry, was stom van mij, het stond hierboven :))

Ge zijt vergeten de \ voor uw aanhalingstekens van de html code te zetten. Uw html code staat immers nog binnen de php tags...
 
Martijn

Martijn

26/11/2006 15:16:00
Quote Anchor link
Uh, hoe moet ie dan worden dan?
 
Martijn

Martijn

26/11/2006 15:44:00
Quote Anchor link
Ok veranderd naar:
<html>
<head>
<title>Registreren</title>
</head>
<body>

<form method=\"POST\" action=\"index.php?page=register\">
Login naam:<br>
<table width=\"200\" border=\"0\">
<tr><td>Gebruikersnaam:</td><td><input type=\"text\" name=\"username2\" maxlength=\"35\" /></td></tr>
<tr><td>Voornaam:</td><td><input type=\"text\" name=\"voornaam2\" maxlength=\"35\" /></td></tr>
<tr><td>Achternaam:</td><td><input type=\"text\" name=\"achternaam2\" maxlength=\"35\" /></td></tr>
<tr><td>Email:</td><td><input type=\"text\" name=\"email\" maxlength=\"35\" /></td></tr>
<tr><td>Wachtwoord:</td><td><input type=\"password\" name=\"wachtwoord\" maxlength=\"35\"/></td></tr>
<tr>
<td>&nbsp;</td>
</tr>( Let op! Alle velden zijn verplicht. )
</table><br />
Gebruikersnaam en wachtwoord moeten minimaal 5 tekens lang zijn.<br />
<input type=\"submit\" name=\"submit\" value=\"Registreer!\"><br />
</form>
<a href=\"index.php\">Terug naar de loginpagina</a>
</body>
</html>

De pagina werkt nu wel, alleen als ik dus ga registeren komt de email niet aan.

Hij zegt wel:

Uw account is aangemaakt maar u kunt nog niet inloggen.

Er is een bevestigings e-mail gestuurd met een URL adres. U moet uw account eerst activeren voordat u kunt inloggen.

En als ik in de database kijk, staan de gegevens er netjes in.
Gewijzigd op 01/01/1970 01:00:00 door Martijn
 
Woffer

woffer

26/11/2006 17:49:00
Quote Anchor link
Zijt ge er zeker van dat uw server de mail() funktie ondersteund ?
 
Martijn

Martijn

26/11/2006 19:40:00
Quote Anchor link
hmm ja daar moet ik dus even achter zien te komen...

in ieder geval hartelijk bedankt woffer voor het helpen met de problemen.
 



Overzicht Reageren

 
 

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.