2 scripts in 1
een actievatie scriptje heb ik al (van phphulp.nl)
en een forumpje ook is er iemand die zo aardig is dat je ze in elkaar propt mij lukt het niet ik ben een php beginer en baker niks van dus kan iemand mij helpen??
dit zijn de scripts.
actievatie script:
registreren.php
Code (php)
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
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
<?
// maak de database connectie
if (!@mysql_select_db("mysql_select_db", @mysql_connect("http://www.members.lycos.nl/marktschuur", "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.members.lycos.nl/marktschuur/aucuant%20met%20actieveer";
// 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(10);
// 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 = "plaats atvertentie activatie";
$van = "Marktschuur";
$bericht .= "Beste $HTTP_POST_VARS[login],\n\n";
$bericht .= "Uw account is aangemaakt.\n\n";
$bericht .= "Het moet alleen nog even geactiveerd worden.\n\n";
$bericht .= "Uw login naam: $HTTP_POST_VARS[login]\n\n";
$bericht .= "Uw wachtwoord: $HTTP_POST_VARS[pass]\n\n";
$bericht .= "Uw wachtwoord is encrypted opgeslagen en kan dus\n\n";
$bericht .= "niet worden opgevragen. Schrijft u uw wachtwoord\n\n";
$bericht .= "daarom op.\n\n";
$bericht .= "Activatie URL:\n\n";
$bericht .= "$activatie_url/activeer.php?email=$aan&key=$key
Bedankt voor het registreren.";
// 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>";
}
}
?>
// maak de database connectie
if (!@mysql_select_db("mysql_select_db", @mysql_connect("http://www.members.lycos.nl/marktschuur", "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.members.lycos.nl/marktschuur/aucuant%20met%20actieveer";
// 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(10);
// 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 = "plaats atvertentie activatie";
$van = "Marktschuur";
$bericht .= "Beste $HTTP_POST_VARS[login],\n\n";
$bericht .= "Uw account is aangemaakt.\n\n";
$bericht .= "Het moet alleen nog even geactiveerd worden.\n\n";
$bericht .= "Uw login naam: $HTTP_POST_VARS[login]\n\n";
$bericht .= "Uw wachtwoord: $HTTP_POST_VARS[pass]\n\n";
$bericht .= "Uw wachtwoord is encrypted opgeslagen en kan dus\n\n";
$bericht .= "niet worden opgevragen. Schrijft u uw wachtwoord\n\n";
$bericht .= "daarom op.\n\n";
$bericht .= "Activatie URL:\n\n";
$bericht .= "$activatie_url/activeer.php?email=$aan&key=$key
Bedankt voor het registreren.";
// 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>";
}
}
?>
activeer.php
Code (php)
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
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
<?
// maak de database connectie
if (!@mysql_select_db("mysql_select_db", @mysql_connect("http://www.members.lycos.nl/marktschuur", "User", "database_pass")))
{
echo "Er kon geen connectie worden gemaakt met de database.";
exit();
}
// defineer de tabel in een variabele
$table = "voorbeeld_gebruikers";
// bekijk of de key en het email opgegeven zijn
if ($HTTP_GET_VARS["key"] && $HTTP_GET_VARS["email"])
{
// match de gegevens uit de URL, met de gegevens in de database
$sql = "SELECT id,activeer FROM $table WHERE activeer = '$HTTP_GET_VARS[key]' AND email = '$HTTP_GET_VARS[email]'";
$res = mysql_query($sql);
// kijk of er een match is
if (mysql_num_rows($res) >= 1)
{
$row = mysql_fetch_array($res);
// bekijk of het al eerder geactiveerd is
if ($row[activeer])
{
// reset de key
$sql = "UPDATE $table SET activeer = NULL WHERE activeer = '$HTTP_GET_VARS[key]' AND email = '$HTTP_GET_VARS[email]'";
$res = mysql_query($sql);
if ($res)
echo "<p>Uw account is geactiveerd. U kunt nu <a href=\"inloggen.php\">inloggen</a>.</p>";
else
echo "<p>Er is iets mis gegaan. U kunt niet inloggen. Probeert u het opnieuw.</p>";
}
// geef melding dat het account al eerder is geactiveerd
else
echo "<p>Het account is al eerder geactiveerd.</p><p><a href=\"inloggen.php\">inloggen</a></p>";
}
// geef melding dat het account niet bestaat
else
echo "<p>Het account bestaat niet of is al eerder geactiveerd.</p><p><a href=\"inloggen.php\">inloggen</a></p>";
}
// geef melding dat de gegevens niet correct zijn
else
echo "<p>U heeft niet de juiste gegevens om dit account te activeren.</p>";
?>
// maak de database connectie
if (!@mysql_select_db("mysql_select_db", @mysql_connect("http://www.members.lycos.nl/marktschuur", "User", "database_pass")))
{
echo "Er kon geen connectie worden gemaakt met de database.";
exit();
}
// defineer de tabel in een variabele
$table = "voorbeeld_gebruikers";
// bekijk of de key en het email opgegeven zijn
if ($HTTP_GET_VARS["key"] && $HTTP_GET_VARS["email"])
{
// match de gegevens uit de URL, met de gegevens in de database
$sql = "SELECT id,activeer FROM $table WHERE activeer = '$HTTP_GET_VARS[key]' AND email = '$HTTP_GET_VARS[email]'";
$res = mysql_query($sql);
// kijk of er een match is
if (mysql_num_rows($res) >= 1)
{
$row = mysql_fetch_array($res);
// bekijk of het al eerder geactiveerd is
if ($row[activeer])
{
// reset de key
$sql = "UPDATE $table SET activeer = NULL WHERE activeer = '$HTTP_GET_VARS[key]' AND email = '$HTTP_GET_VARS[email]'";
$res = mysql_query($sql);
if ($res)
echo "<p>Uw account is geactiveerd. U kunt nu <a href=\"inloggen.php\">inloggen</a>.</p>";
else
echo "<p>Er is iets mis gegaan. U kunt niet inloggen. Probeert u het opnieuw.</p>";
}
// geef melding dat het account al eerder is geactiveerd
else
echo "<p>Het account is al eerder geactiveerd.</p><p><a href=\"inloggen.php\">inloggen</a></p>";
}
// geef melding dat het account niet bestaat
else
echo "<p>Het account bestaat niet of is al eerder geactiveerd.</p><p><a href=\"inloggen.php\">inloggen</a></p>";
}
// geef melding dat de gegevens niet correct zijn
else
echo "<p>U heeft niet de juiste gegevens om dit account te activeren.</p>";
?>
inloggen.php
Code (php)
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
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
<?
session_start();
// maak de database connectie
if (!@mysql_select_db("mysql_select_db", @mysql_connect("http://www.members.lycos.nl/marktschuur", "user", "database_pass")))
{
echo "Er kon geen connectie worden gemaakt met de database.";
exit();
}
// defineer de tabel in een variabele
$table = "voorbeeld_gebruikers";
// bekijk of de gene al is ingelogd
if ($HTTP_SESSION_VARS["ingelogd"] && !$loguit)
{
echo "<p>U bent ingelogd. U kunt nu nog niks ;).</p>";
echo "<p><a href=\"$PHP_SELF?loguit=1\">uitloggen</a></p>";
}
// uitloggen
elseif ($HTTP_GET_VARS["loguit"])
{
session_unregister(ingelogd);
echo "<p>U bent uitgelogd.</p>";
echo "<p><a href=\"$PHP_SELF\">inloggen</a></p>";
}
// bekijk of het formulier verzonden is en de gegevens juist zijn
elseif ($HTTP_POST_VARS["submit"] && $HTTP_POST_VARS["login"] && $HTTP_POST_VARS["pass"])
{
// encrypt pass om te matchen met encrypte pass in de database
$passwd = md5($HTTP_POST_VARS[pass]);
// selecteer login/pass uit de database en match ze met ingevoerde gegevens
$sql = "SELECT id FROM $table WHERE login = '$HTTP_POST_VARS[login]' AND pass = '$passwd' AND activeer IS NULL";
$res = mysql_query($sql);
// bekijk of de gegevens juist zijn
if (mysql_num_rows($res) >= 1)
{
// registreer sessie (of cookie)
$ingelogd = mysql_result($res, 0);
session_register(ingelogd);
// setcookie("ingelogd", "$ingelogd", time() + 1 * 86400);
echo "<p>U bent succesvol ingelogd.</p>";
echo "<p>Ga <a href=\"$PHP_SELF\">verder</a>.</p>";
echo "<p><a href=\"$PHP_SELF?loguit=1\">uitloggen</a></p>";
}
// zo niet, geef foutmelding
else
{
echo "<p>U heeft een ongeldige login naam of wachtwoord ingevuld.</p>";
echo "<p>Ook kan het zijn dat uw account nog niet is geactiveerd.</p>";
echo "<p>Probeert u het <a href=\"$PHP_SELF\">opnieuw</a>.</p>";
}
}
// toon formulier
else
{
echo "<form method=\"post\" action=\"$PHP_SELF\">";
echo "Login naam:<br>";
echo "<input type=\"text\" name=\"login\" size=\"20\" maxlength=\"20\"><br>";
echo "Wachtwoord:<br>";
echo "<input type=\"password\" name=\"pass\" size=\"20\"><br>";
echo "<input type=\"submit\" name=\"submit\" value=\"inloggen\">";
echo "</form>";
}
?>
session_start();
// maak de database connectie
if (!@mysql_select_db("mysql_select_db", @mysql_connect("http://www.members.lycos.nl/marktschuur", "user", "database_pass")))
{
echo "Er kon geen connectie worden gemaakt met de database.";
exit();
}
// defineer de tabel in een variabele
$table = "voorbeeld_gebruikers";
// bekijk of de gene al is ingelogd
if ($HTTP_SESSION_VARS["ingelogd"] && !$loguit)
{
echo "<p>U bent ingelogd. U kunt nu nog niks ;).</p>";
echo "<p><a href=\"$PHP_SELF?loguit=1\">uitloggen</a></p>";
}
// uitloggen
elseif ($HTTP_GET_VARS["loguit"])
{
session_unregister(ingelogd);
echo "<p>U bent uitgelogd.</p>";
echo "<p><a href=\"$PHP_SELF\">inloggen</a></p>";
}
// bekijk of het formulier verzonden is en de gegevens juist zijn
elseif ($HTTP_POST_VARS["submit"] && $HTTP_POST_VARS["login"] && $HTTP_POST_VARS["pass"])
{
// encrypt pass om te matchen met encrypte pass in de database
$passwd = md5($HTTP_POST_VARS[pass]);
// selecteer login/pass uit de database en match ze met ingevoerde gegevens
$sql = "SELECT id FROM $table WHERE login = '$HTTP_POST_VARS[login]' AND pass = '$passwd' AND activeer IS NULL";
$res = mysql_query($sql);
// bekijk of de gegevens juist zijn
if (mysql_num_rows($res) >= 1)
{
// registreer sessie (of cookie)
$ingelogd = mysql_result($res, 0);
session_register(ingelogd);
// setcookie("ingelogd", "$ingelogd", time() + 1 * 86400);
echo "<p>U bent succesvol ingelogd.</p>";
echo "<p>Ga <a href=\"$PHP_SELF\">verder</a>.</p>";
echo "<p><a href=\"$PHP_SELF?loguit=1\">uitloggen</a></p>";
}
// zo niet, geef foutmelding
else
{
echo "<p>U heeft een ongeldige login naam of wachtwoord ingevuld.</p>";
echo "<p>Ook kan het zijn dat uw account nog niet is geactiveerd.</p>";
echo "<p>Probeert u het <a href=\"$PHP_SELF\">opnieuw</a>.</p>";
}
}
// toon formulier
else
{
echo "<form method=\"post\" action=\"$PHP_SELF\">";
echo "Login naam:<br>";
echo "<input type=\"text\" name=\"login\" size=\"20\" maxlength=\"20\"><br>";
echo "Wachtwoord:<br>";
echo "<input type=\"password\" name=\"pass\" size=\"20\"><br>";
echo "<input type=\"submit\" name=\"submit\" value=\"inloggen\">";
echo "</form>";
}
?>
Forum scriptje:
Te downloaden op: http://www.webmensen.nl/scripts/downloaden/webmensennl-phpmysql-forumsysteem.zip
Ps: Als er imand is die het wil doen graag de inlog functie er helemaal uithalen.
Alvast bedankt!!!!!
Er zijn nog geen reacties op dit bericht.