Hallo,
Voor mijn kleine CMS ben ik nu bezig met het activatie-mail systeem.
Ik maak dus een random code aan, die code steekt hij in de database, en (zou hij moeten) stuurt hij op naar de database.
Nu zit ik met het probleem dat ik steeds met 2 verschillende codes zit.
Zo genereer ik de code;
Codeblok (voorbeeld.php):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function code($length = 6)
{
$validCharacters = "ABCDEFGHIKLMOPQRSTUVWXYZ1234567890";
$validCharNumber = strlen($validCharacters);
$result = "";
for ($i = 0; $i < $length; $i++) {
$index = mt_rand(0, $validCharNumber - 1);
$result .= $validCharacters[$index];
}
return $result;
}
$_SESSION[code] = code();
$code = $_SESSION[code];
Helemaal vanachter zie je de ID die word opgestuurd naar de database;
Afbeelding niet beschikbaarDe bron kon niet worden geladen (i.imgur.com).Bron openen ↗
En dat stuur ik dan zo op;
Codeblok (voorbeeld.php):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$aanmeld = "
INSERT INTO leden
(
naam,
wachtwoord,
email,
kladblok,
rang,
ac_mail
)
VALUES
(
".$naam.",
".sha1($pass).",
".$email.",
Leeg,
1,
".$code."
)
";
Hier zie je de mail, met een andere code.
Afbeelding niet beschikbaarDe bron kon niet worden geladen (i.imgur.com).Bron openen ↗
En de mail verstuur ik zo;
Codeblok (voorbeeld.php):
1
2
3
4
5
6
7
8
9
$mail = $email;
$subject = "Activatiemail CMSander";
$datum .= date(d/m/Y H:i:s);
$inhoud .= "Surf naar http://www.sander.freux.nl/cms/activeer_mail.php en vul er de code ".$code." in";
$inhoud .= "Verstuurd op ".$datum." via het IP-Adress ".$_SERVER[REMOTE_ADDR]."
";
mail($mail, $subject, $inhoud);
echo Er is een activatiemail verstuurd naar het volgende email adress:.$email;
$aan->free_result();
Heel de code; 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
require_once layout_boven.php;
require_once config.php;
function code($length = 6)
{
$validCharacters = "ABCDEFGHIKLMOPQRSTUVWXYZ1234567890";
$validCharNumber = strlen($validCharacters);
$result = "";
for ($i = 0; $i < $length; $i++) {
$index = mt_rand(0, $validCharNumber - 1);
$result .= $validCharacters[$index];
}
return $result;
}
$_SESSION[code] = code();
$code = $_SESSION[code];
if($_SESSION[login])
{
header(Refresh: 1; url=menu.php);
echoJe bent al ingelogd;
exit;
}
else
{
}
if ($_SERVER[REQUEST_METHOD] == "POST")
{
if(isset($_POST[naam]))
{
if(isset($_POST[pass]))
{
if(isset($_POST[email]))
{
$naam = $connect->real_escape_string($_POST[naam]);
$pass = $connect->real_escape_string($_POST[pass]);
$email = $connect->real_escape_string($_POST[email]);
$aanmeld = "
INSERT INTO leden
(
naam,
wachtwoord,
email,
kladblok,
rang,
ac_mail
)
VALUES
(
".$naam.",
".sha1($pass).",
".$email.",
Leeg,
1,
".$code."
)
";
$aan = $connect->prepare($aanmeld);
if($result = $aan->execute())
{
$mail = $email;
$subject = "Activatiemail CMSander";
$datum .= date(d/m/Y H:i:s);
$inhoud .= "Surf naar http://www.sander.freux.nl/cms/activeer_mail.php en vul er de code ".$code." in";
$inhoud .= "Verstuurd op ".$datum." via het IP-Adress ".$_SERVER[REMOTE_ADDR]."
";
mail($mail, $subject, $inhoud);
echo Er is een activatiemail verstuurd naar het volgende email adress:.$email;
$aan->free_result();
}
else
{
echoAanmelden mislukt wegens een probleem met de SQL;
}
}
else
{
echoHet veld voor de e-mail is niet correct ingevuld!;
}
}
else
{
echoHet veld voor het wachtwoord is niet correct ingevuld!;
}
}
else
{
echoHet veld voor de gebruikersnaam is niet correct ingevuld!;
}
}
else
{
?>
}
require_once layout_onder.php;
?>
ja ik weet dat dit een niet zeer veilige mannier is van activatie code, het systeem is nog niet af dus ik wil eerst dit opgelost krijgen...
Bedankt
Voor mijn kleine CMS ben ik nu bezig met het activatie-mail systeem.
Ik maak dus een random code aan, die code steekt hij in de database, en (zou hij moeten) stuurt hij op naar de database.
Nu zit ik met het probleem dat ik steeds met 2 verschillende codes zit.
Zo genereer ik de code;
Codeblok (voorbeeld.php):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function code($length = 6)
{
$validCharacters = "ABCDEFGHIKLMOPQRSTUVWXYZ1234567890";
$validCharNumber = strlen($validCharacters);
$result = "";
for ($i = 0; $i < $length; $i++) {
$index = mt_rand(0, $validCharNumber - 1);
$result .= $validCharacters[$index];
}
return $result;
}
$_SESSION[code] = code();
$code = $_SESSION[code];
Helemaal vanachter zie je de ID die word opgestuurd naar de database;
Afbeelding niet beschikbaarDe bron kon niet worden geladen (i.imgur.com).Bron openen ↗En dat stuur ik dan zo op;
Codeblok (voorbeeld.php):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$aanmeld = "
INSERT INTO leden
(
naam,
wachtwoord,
email,
kladblok,
rang,
ac_mail
)
VALUES
(
".$naam.",
".sha1($pass).",
".$email.",
Leeg,
1,
".$code."
)
";
Hier zie je de mail, met een andere code.
Afbeelding niet beschikbaarDe bron kon niet worden geladen (i.imgur.com).Bron openen ↗En de mail verstuur ik zo;
Codeblok (voorbeeld.php):
1
2
3
4
5
6
7
8
9
$mail = $email;
$subject = "Activatiemail CMSander";
$datum .= date(d/m/Y H:i:s);
$inhoud .= "Surf naar http://www.sander.freux.nl/cms/activeer_mail.php en vul er de code ".$code." in";
$inhoud .= "Verstuurd op ".$datum." via het IP-Adress ".$_SERVER[REMOTE_ADDR]."
";
mail($mail, $subject, $inhoud);
echo Er is een activatiemail verstuurd naar het volgende email adress:.$email;
$aan->free_result();
Heel de code;
Spoiler tonen
Codeblok (aanmelden.php):
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
require_once layout_boven.php;
require_once config.php;
function code($length = 6)
{
$validCharacters = "ABCDEFGHIKLMOPQRSTUVWXYZ1234567890";
$validCharNumber = strlen($validCharacters);
$result = "";
for ($i = 0; $i < $length; $i++) {
$index = mt_rand(0, $validCharNumber - 1);
$result .= $validCharacters[$index];
}
return $result;
}
$_SESSION[code] = code();
$code = $_SESSION[code];
if($_SESSION[login])
{
header(Refresh: 1; url=menu.php);
echoJe bent al ingelogd;
exit;
}
else
{
}
if ($_SERVER[REQUEST_METHOD] == "POST")
{
if(isset($_POST[naam]))
{
if(isset($_POST[pass]))
{
if(isset($_POST[email]))
{
$naam = $connect->real_escape_string($_POST[naam]);
$pass = $connect->real_escape_string($_POST[pass]);
$email = $connect->real_escape_string($_POST[email]);
$aanmeld = "
INSERT INTO leden
(
naam,
wachtwoord,
email,
kladblok,
rang,
ac_mail
)
VALUES
(
".$naam.",
".sha1($pass).",
".$email.",
Leeg,
1,
".$code."
)
";
$aan = $connect->prepare($aanmeld);
if($result = $aan->execute())
{
$mail = $email;
$subject = "Activatiemail CMSander";
$datum .= date(d/m/Y H:i:s);
$inhoud .= "Surf naar http://www.sander.freux.nl/cms/activeer_mail.php en vul er de code ".$code." in";
$inhoud .= "Verstuurd op ".$datum." via het IP-Adress ".$_SERVER[REMOTE_ADDR]."
";
mail($mail, $subject, $inhoud);
echo Er is een activatiemail verstuurd naar het volgende email adress:.$email;
$aan->free_result();
}
else
{
echoAanmelden mislukt wegens een probleem met de SQL;
}
}
else
{
echoHet veld voor de e-mail is niet correct ingevuld!;
}
}
else
{
echoHet veld voor het wachtwoord is niet correct ingevuld!;
}
}
else
{
echoHet veld voor de gebruikersnaam is niet correct ingevuld!;
}
}
else
{
?>
Aanmelden
}
require_once layout_onder.php;
?>
ja ik weet dat dit een niet zeer veilige mannier is van activatie code, het systeem is nog niet af dus ik wil eerst dit opgelost krijgen...
Bedankt
