Getallen veranderen, hoe kan ik ze gelijk houden?
Ik probeer een wachtwoord opvraagscript te maken met een validatiecode. Het probleem is alleen, de validatiecode die hij in de database zet is anders dan die ik in de mail staat, die je ontvangt. Terwijl het wachtwoord wel gewoon goed blijft.
Wat doe ik verkeerd?
Alvast bedankt voor je hulp.
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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
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
168
169
170
171
172
173
<?
function randomwachtwoord($length)
{
$tekens = "1234567890aBcDeFgHiJkLmNoPqRsTuVwXyZ";
$key = $tekens{rand(0,35)};
for($i=1;$i<$length;$i++)
{
$key .= $tekens{rand(0,35)};
}
return $key;
}
function validationkey($length)
{
$tekens = "1234567890";
$key = $tekens{rand(0,9)};
for($i=1;$i<$length;$i++)
{
$key .= $tekens{rand(0,9)};
}
return $key;
}
echo ubb('[box=Ohjee, Gegevens vergeten?]');
// Wachtwoord verkrijgen bij gebruikersnaam en emailadres
echo ubb('[subtitle]1) Alleen je wachtwoord vergeten?[/subtitle]');
echo '<p>Laten we het niet te lastig voor je maken. Om een nieuw wachtwoord op te vragen hoef je alleen je gebruikersnaam en je emailadres in te vullen. Je krijgt dan automatisch een mailje, waarin stappen en een speciale code staat om je wachtwoord te verandreren. Gebruikersnaam kwijt? Kijk dan onder optie 2.';
if (isset($_POST['submit']) && !empty($_POST['gebruikersnaam']) && !empty($_POST['email']))
{
$gebruikersnaam = mysql_real_escape_string(substr($_POST['gebruikersnaam'],0,255));
$email = mysql_real_escape_string(substr($_POST['email'],0,955));
$valkey = validationkey(10);
$wachtwoord = randomwachtwoord(10);
$wachtwoordmd5 = hash('sha512', $wachtwoord);
$sql2 = "SELECT * FROM users WHERE username='".$gebruikersnaam."' AND email='".$email."'";
$res2 = mysql_query($sql2)or die(mysql_error());
if(mysql_num_rows($res2) < 1) {
echo "De gegevens kunnen niet gevonden worden. Je hebt waarschijnlijk één van de twee ingevulde velden fout getypt. Refresh de pagina (F5) of als je het niet weet, ga naar optie 2.";
}else{
$row = mysql_fetch_assoc($res2);
mysql_query("UPDATE users SET password='".$wachtwoordmd5."' WHERE username='".$gebruikersnaam."'");
mysql_query("INSERT INTO pass_request (query, email, username, password, date, ip) VALUES ('".$valkey."','".$row['email']."','".$row['username']."','".$wachtwoord."',NOW(),'".$_SERVER['REMOTE_ADDR']."')");
$headers = "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "From: Habbowereld.nl Support <[email protected]>";
mail($row['email'],"Habbowereld.nl - Nieuw wachtwoord","
Beste <b>".$row['username']."</b>,<br>
<br>
Wij hebben vernomen dat jij een nieuw wachtwoord aanwil vragen. Omdat wij zeker willen weten dat jij dit daadwerkelijk wilt doen, hebben we deze mail gestuurd. Als je op de onderstaande link klikt dan wordt er automatisch opnieuw een email gestuurd met het daarin nieuwe wachtwoord.<br>
<br>
<a href='http://www.habbowereld.nl/newpass/".$valkey."'>http://www.habbowereld.nl/newpass/".$valkey."</a><br>
<i>Klik op bovenstaande link, als hij niet klikbaar is, kopieer dan de URL naar je adresbalk.</i><br>
Als je de pagina hebt geopend, en hij ook is uitgeladen. Dan ontvang je zometeen een email met je nieuwe wachtwoord.<br>
<br>
Hopelijk hebben wij jou voldoende kunnen informeren.<br>
<br>
<br>
Met vriendelijke groet,<br>
<br>
:: Habbowereld Support<br>
:: [email protected]<br>
:: www.habbowereld.nl",$headers); // stuur de email
echo "<br><br><b>De mail is succesvol verstuurd, volg de stappen in je mailbox. Als dit is gebeurd ontvang je daarna je nieuwe wachtwoord.</b>"; // leuk uitlegje
}
}else{
echo '<br><br><form action="/leden/wwvergeten/" method="post">';
echo '<table cellspacing="0" cellpadding="0" width="100%" border="0">
<tr>
<td>Gebruikersnaam</td>
<td><input type="text" name="gebruikersnaam" maxlength="255" />';
if(isset($_POST['submit']) && empty($_POST['naam'])) {
echo "<br> Vul een gebruikersnaam in."; }
echo '</td>
</tr>
<tr>
<td>E-mailadres</td>
<td><input type="text" name="email" maxlength="755" />';
if(isset($_POST['submit']) && empty($_POST['email'])) {
echo "<br> Vul een emailadres in."; }
echo '</td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="Verstuur" /></td>
</tr>
</table></form><br></p>';
}
// Wachtwoord verkrijgen bij emailadres en opvraagwoord
echo ubb('[subtitle]2) Gebruikersnaam en wachtwoord kwijt?[/subtitle]');
echo '<p>Zo, dus jij bent je gebruikersnaam kwijt. Om via deze manier aan je wachtwoord te komen is natuurlijk wel wat lastiger. Je hebt bij het registreren op opvraagwoord in moeten vullen. Dit woord moet je hier ook intypen. Weetje dat ook niet meer? Ga dan verder bij optie 3.';
if (isset($_POST['submit']) && !empty($_POST['woord']) && !empty($_POST['email']))
{
$gebruikersnaam = mysql_real_escape_string(substr($_POST['gebruikersnaam'],0,255));
$email = mysql_real_escape_string(substr($_POST['email'],0,955));
$valkey = validationkey(10);
$wachtwoord = randomwachtwoord(10);
$wachtwoordmd5 = hash('sha512', $wachtwoord);
$sql2 = "SELECT * FROM users WHERE username='".$gebruikersnaam."' AND email='".$email."'";
$res2 = mysql_query($sql2)or die(mysql_error());
if(mysql_num_rows($res2) < 1) {
echo "De gegevens kunnen niet gevonden worden. Je hebt waarschijnlijk één van de twee ingevulde velden fout getypt. Refresh de pagina (F5) of als je het niet weet, ga naar optie 2.";
}else{
$row = mysql_fetch_assoc($res2);
mysql_query("UPDATE users SET password='".$wachtwoordmd5."' WHERE username='".$gebruikersnaam."'");
mysql_query("INSERT INTO pass_request (query, email, username, password, date, ip) VALUES ('".$valkey."','".$row['email']."','".$row['username']."','".$row['md5_pass']."',NOW(),'".$_SERVER['REMOTE_ADDR']."')");
$keyGET = mysql_query("SELECT * FROM pass_request WHERE password='".$wachtwoord."'");
$getKey = mysql_fetch_array($keyGET);
$headers = "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "From: Habbowereld.nl Support <[email protected]>";
mail($row['email'],"Habbowereld.nl - Nieuw wachtwoord","
Beste <b>".$row['username']."</b>,<br>
<br>
Wij hebben vernomen dat jij een nieuw wachtwoord aanwil vragen. Omdat wij zeker willen weten dat jij dit daadwerkelijk wilt doen, hebben we deze mail gestuurd. Als je op de onderstaande link klikt dan wordt er automatisch opnieuw een email gestuurd met het daarin nieuwe wachtwoord.<br>
<br>
<a href='http://www.habbowereld.nl/newpass/".$valkey."'>http://www.habbowereld.nl/newpass/".$valkey."</a><br>
<i>Klik op bovenstaande link, als hij niet klikbaar is, kopieer dan de URL naar je adresbalk.</i><br>
Als je de pagina hebt geopend, en hij ook is uitgeladen. Dan ontvang je zometeen een email met je nieuwe wachtwoord.<br>
<br>
Hopelijk hebben wij jou voldoende kunnen informeren.<br>
<br>
<br>
Met vriendelijke groet,<br>
<br>
:: Habbowereld Support<br>
:: [email protected]<br>
:: www.habbowereld.nl",$headers); // stuur de email
echo "<br><br><b>De mail is succesvol verstuurd, volg de stappen in je mailbox. Als dit is gebeurd ontvang je daarna je nieuwe wachtwoord.</b>"; // leuk uitlegje
}
}else{
echo '<br><br><form action="/leden/wwvergeten/" method="post">';
echo '<table cellspacing="0" cellpadding="0" width="100%" border="0">
<tr>
<td>Gebruikersnaam</td>
<td><input type="text" name="gebruikersnaam" maxlength="255" />';
if(isset($_POST['submit2']) && empty($_POST['naam'])) {
echo "<br> Vul een gebruikersnaam in."; }
echo '</td>
</tr>
<tr>
<td>Opvraagwoord</td>
<td><input type="text" name="woord" maxlength="755" />';
if(isset($_POST['submit2']) && empty($_POST['woord'])) {
echo "<br> Vul een emailadres in."; }
echo '</td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit2" value="Verstuur" /></td>
</tr>
</table></form><br></p>';
}
// Wachtwoord niet verkrijgen, contact stappen
echo ubb('[subtitle]3) Niets lukt? Dan helpen wij handmatig mee![/subtitle]');
echo '<p>Helaas, omdat je alles bent vergeten kun je niet automatisch een nieuw wachtwoord aanvragen. Hiervoor moet je naar het contactformulier. Klik als onderwerp aan \'Wachtwoord kwijt\'. Vul een correcte emailadres in en habbonaam. In het tekstvak moet je een verklaring zetten dat het account echt van jou is. De mogelijke gebruikersnamen en emailadressen vermelden, hoe je account zou kunnen heten. Mocht je het account aangemaakt hebben op het zelfde netwerk dan dat je nu zit. Dan kunnen wij jou account snel traceren, en anders gaan we onze uiterste best doen om jou account bij jou terecht te laten komen.</p>';
echo ubb('[/box]');
?>
function randomwachtwoord($length)
{
$tekens = "1234567890aBcDeFgHiJkLmNoPqRsTuVwXyZ";
$key = $tekens{rand(0,35)};
for($i=1;$i<$length;$i++)
{
$key .= $tekens{rand(0,35)};
}
return $key;
}
function validationkey($length)
{
$tekens = "1234567890";
$key = $tekens{rand(0,9)};
for($i=1;$i<$length;$i++)
{
$key .= $tekens{rand(0,9)};
}
return $key;
}
echo ubb('[box=Ohjee, Gegevens vergeten?]');
// Wachtwoord verkrijgen bij gebruikersnaam en emailadres
echo ubb('[subtitle]1) Alleen je wachtwoord vergeten?[/subtitle]');
echo '<p>Laten we het niet te lastig voor je maken. Om een nieuw wachtwoord op te vragen hoef je alleen je gebruikersnaam en je emailadres in te vullen. Je krijgt dan automatisch een mailje, waarin stappen en een speciale code staat om je wachtwoord te verandreren. Gebruikersnaam kwijt? Kijk dan onder optie 2.';
if (isset($_POST['submit']) && !empty($_POST['gebruikersnaam']) && !empty($_POST['email']))
{
$gebruikersnaam = mysql_real_escape_string(substr($_POST['gebruikersnaam'],0,255));
$email = mysql_real_escape_string(substr($_POST['email'],0,955));
$valkey = validationkey(10);
$wachtwoord = randomwachtwoord(10);
$wachtwoordmd5 = hash('sha512', $wachtwoord);
$sql2 = "SELECT * FROM users WHERE username='".$gebruikersnaam."' AND email='".$email."'";
$res2 = mysql_query($sql2)or die(mysql_error());
if(mysql_num_rows($res2) < 1) {
echo "De gegevens kunnen niet gevonden worden. Je hebt waarschijnlijk één van de twee ingevulde velden fout getypt. Refresh de pagina (F5) of als je het niet weet, ga naar optie 2.";
}else{
$row = mysql_fetch_assoc($res2);
mysql_query("UPDATE users SET password='".$wachtwoordmd5."' WHERE username='".$gebruikersnaam."'");
mysql_query("INSERT INTO pass_request (query, email, username, password, date, ip) VALUES ('".$valkey."','".$row['email']."','".$row['username']."','".$wachtwoord."',NOW(),'".$_SERVER['REMOTE_ADDR']."')");
$headers = "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "From: Habbowereld.nl Support <[email protected]>";
mail($row['email'],"Habbowereld.nl - Nieuw wachtwoord","
Beste <b>".$row['username']."</b>,<br>
<br>
Wij hebben vernomen dat jij een nieuw wachtwoord aanwil vragen. Omdat wij zeker willen weten dat jij dit daadwerkelijk wilt doen, hebben we deze mail gestuurd. Als je op de onderstaande link klikt dan wordt er automatisch opnieuw een email gestuurd met het daarin nieuwe wachtwoord.<br>
<br>
<a href='http://www.habbowereld.nl/newpass/".$valkey."'>http://www.habbowereld.nl/newpass/".$valkey."</a><br>
<i>Klik op bovenstaande link, als hij niet klikbaar is, kopieer dan de URL naar je adresbalk.</i><br>
Als je de pagina hebt geopend, en hij ook is uitgeladen. Dan ontvang je zometeen een email met je nieuwe wachtwoord.<br>
<br>
Hopelijk hebben wij jou voldoende kunnen informeren.<br>
<br>
<br>
Met vriendelijke groet,<br>
<br>
:: Habbowereld Support<br>
:: [email protected]<br>
:: www.habbowereld.nl",$headers); // stuur de email
echo "<br><br><b>De mail is succesvol verstuurd, volg de stappen in je mailbox. Als dit is gebeurd ontvang je daarna je nieuwe wachtwoord.</b>"; // leuk uitlegje
}
}else{
echo '<br><br><form action="/leden/wwvergeten/" method="post">';
echo '<table cellspacing="0" cellpadding="0" width="100%" border="0">
<tr>
<td>Gebruikersnaam</td>
<td><input type="text" name="gebruikersnaam" maxlength="255" />';
if(isset($_POST['submit']) && empty($_POST['naam'])) {
echo "<br> Vul een gebruikersnaam in."; }
echo '</td>
</tr>
<tr>
<td>E-mailadres</td>
<td><input type="text" name="email" maxlength="755" />';
if(isset($_POST['submit']) && empty($_POST['email'])) {
echo "<br> Vul een emailadres in."; }
echo '</td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="Verstuur" /></td>
</tr>
</table></form><br></p>';
}
// Wachtwoord verkrijgen bij emailadres en opvraagwoord
echo ubb('[subtitle]2) Gebruikersnaam en wachtwoord kwijt?[/subtitle]');
echo '<p>Zo, dus jij bent je gebruikersnaam kwijt. Om via deze manier aan je wachtwoord te komen is natuurlijk wel wat lastiger. Je hebt bij het registreren op opvraagwoord in moeten vullen. Dit woord moet je hier ook intypen. Weetje dat ook niet meer? Ga dan verder bij optie 3.';
if (isset($_POST['submit']) && !empty($_POST['woord']) && !empty($_POST['email']))
{
$gebruikersnaam = mysql_real_escape_string(substr($_POST['gebruikersnaam'],0,255));
$email = mysql_real_escape_string(substr($_POST['email'],0,955));
$valkey = validationkey(10);
$wachtwoord = randomwachtwoord(10);
$wachtwoordmd5 = hash('sha512', $wachtwoord);
$sql2 = "SELECT * FROM users WHERE username='".$gebruikersnaam."' AND email='".$email."'";
$res2 = mysql_query($sql2)or die(mysql_error());
if(mysql_num_rows($res2) < 1) {
echo "De gegevens kunnen niet gevonden worden. Je hebt waarschijnlijk één van de twee ingevulde velden fout getypt. Refresh de pagina (F5) of als je het niet weet, ga naar optie 2.";
}else{
$row = mysql_fetch_assoc($res2);
mysql_query("UPDATE users SET password='".$wachtwoordmd5."' WHERE username='".$gebruikersnaam."'");
mysql_query("INSERT INTO pass_request (query, email, username, password, date, ip) VALUES ('".$valkey."','".$row['email']."','".$row['username']."','".$row['md5_pass']."',NOW(),'".$_SERVER['REMOTE_ADDR']."')");
$keyGET = mysql_query("SELECT * FROM pass_request WHERE password='".$wachtwoord."'");
$getKey = mysql_fetch_array($keyGET);
$headers = "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "From: Habbowereld.nl Support <[email protected]>";
mail($row['email'],"Habbowereld.nl - Nieuw wachtwoord","
Beste <b>".$row['username']."</b>,<br>
<br>
Wij hebben vernomen dat jij een nieuw wachtwoord aanwil vragen. Omdat wij zeker willen weten dat jij dit daadwerkelijk wilt doen, hebben we deze mail gestuurd. Als je op de onderstaande link klikt dan wordt er automatisch opnieuw een email gestuurd met het daarin nieuwe wachtwoord.<br>
<br>
<a href='http://www.habbowereld.nl/newpass/".$valkey."'>http://www.habbowereld.nl/newpass/".$valkey."</a><br>
<i>Klik op bovenstaande link, als hij niet klikbaar is, kopieer dan de URL naar je adresbalk.</i><br>
Als je de pagina hebt geopend, en hij ook is uitgeladen. Dan ontvang je zometeen een email met je nieuwe wachtwoord.<br>
<br>
Hopelijk hebben wij jou voldoende kunnen informeren.<br>
<br>
<br>
Met vriendelijke groet,<br>
<br>
:: Habbowereld Support<br>
:: [email protected]<br>
:: www.habbowereld.nl",$headers); // stuur de email
echo "<br><br><b>De mail is succesvol verstuurd, volg de stappen in je mailbox. Als dit is gebeurd ontvang je daarna je nieuwe wachtwoord.</b>"; // leuk uitlegje
}
}else{
echo '<br><br><form action="/leden/wwvergeten/" method="post">';
echo '<table cellspacing="0" cellpadding="0" width="100%" border="0">
<tr>
<td>Gebruikersnaam</td>
<td><input type="text" name="gebruikersnaam" maxlength="255" />';
if(isset($_POST['submit2']) && empty($_POST['naam'])) {
echo "<br> Vul een gebruikersnaam in."; }
echo '</td>
</tr>
<tr>
<td>Opvraagwoord</td>
<td><input type="text" name="woord" maxlength="755" />';
if(isset($_POST['submit2']) && empty($_POST['woord'])) {
echo "<br> Vul een emailadres in."; }
echo '</td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit2" value="Verstuur" /></td>
</tr>
</table></form><br></p>';
}
// Wachtwoord niet verkrijgen, contact stappen
echo ubb('[subtitle]3) Niets lukt? Dan helpen wij handmatig mee![/subtitle]');
echo '<p>Helaas, omdat je alles bent vergeten kun je niet automatisch een nieuw wachtwoord aanvragen. Hiervoor moet je naar het contactformulier. Klik als onderwerp aan \'Wachtwoord kwijt\'. Vul een correcte emailadres in en habbonaam. In het tekstvak moet je een verklaring zetten dat het account echt van jou is. De mogelijke gebruikersnamen en emailadressen vermelden, hoe je account zou kunnen heten. Mocht je het account aangemaakt hebben op het zelfde netwerk dan dat je nu zit. Dan kunnen wij jou account snel traceren, en anders gaan we onze uiterste best doen om jou account bij jou terecht te laten komen.</p>';
echo ubb('[/box]');
?>
Ik vermoed dat je misschien ergens opnieuw de valkey aanmaakt?
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
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
<?
function randomwachtwoord($length)
{
$tekens = "1234567890aBcDeFgHiJkLmNoPqRsTuVwXyZ";
$key = $tekens{rand(0,35)};
for($i=1;$i<$length;$i++)
{
$key .= $tekens{rand(0,35)};
}
return $key;
}
function validationkey($length)
{
$tekens = "1234567890";
$key = $tekens{rand(0,9)};
for($i=1;$i<$length;$i++)
{
$key .= $tekens{rand(0,9)};
}
return $key;
}
if (isset($_POST['submit']) && !empty($_POST['gebruikersnaam']) && !empty($_POST['email']))
{
$gebruikersnaam = mysql_real_escape_string(substr($_POST['gebruikersnaam'],0,255));
$email = mysql_real_escape_string(substr($_POST['email'],0,955));
$valkey = validationkey(10);
$wachtwoord = randomwachtwoord(10);
$wachtwoordmd5 = hash('sha512', $wachtwoord);
$sql2 = "SELECT * FROM users WHERE username='".$gebruikersnaam."' AND email='".$email."'";
$res2 = mysql_query($sql2)or die(mysql_error());
if(mysql_num_rows($res2) < 1) {
echo "De gegevens kunnen niet gevonden worden. Je hebt waarschijnlijk één van de twee ingevulde velden fout getypt. Refresh de pagina (F5) of als je het niet weet, ga naar optie 2.";
}else{
$row = mysql_fetch_assoc($res2);
mysql_query("UPDATE users SET password='".$wachtwoordmd5."' WHERE username='".$gebruikersnaam."'");
mysql_query("INSERT INTO pass_request (query, email, username, password, date, ip) VALUES ('".$valkey."','".$row['email']."','".$row['username']."','".$wachtwoord."',NOW(),'".$_SERVER['REMOTE_ADDR']."')");
$headers = "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "From: Habbowereld.nl Support <[email protected]>";
mail($row['email'],"Habbowereld.nl - Nieuw wachtwoord","
Beste <b>".$row['username']."</b>,<br>
<br>
Wij hebben vernomen dat jij een nieuw wachtwoord aanwil vragen. Omdat wij zeker willen weten dat jij dit daadwerkelijk wilt doen, hebben we deze mail gestuurd. Als je op de onderstaande link klikt dan wordt er automatisch opnieuw een email gestuurd met het daarin nieuwe wachtwoord.<br>
<br>
<a href='http://www.habbowereld.nl/newpass/".$valkey."'>http://www.habbowereld.nl/newpass/".$valkey."</a><br>
<i>Klik op bovenstaande link, als hij niet klikbaar is, kopieer dan de URL naar je adresbalk.</i><br>
Als je de pagina hebt geopend, en hij ook is uitgeladen. Dan ontvang je zometeen een email met je nieuwe wachtwoord.<br>
<br>
Hopelijk hebben wij jou voldoende kunnen informeren.<br>
<br>
<br>
Met vriendelijke groet,<br>
<br>
:: Habbowereld Support<br>
:: [email protected]<br>
:: www.habbowereld.nl",$headers); // stuur de email
echo "<br><br><b>De mail is succesvol verstuurd, volg de stappen in je mailbox. Als dit is gebeurd ontvang je daarna je nieuwe wachtwoord.</b>"; // leuk uitlegje
}
}else{
// FORM
}
echo ubb('[/box]');
?>
function randomwachtwoord($length)
{
$tekens = "1234567890aBcDeFgHiJkLmNoPqRsTuVwXyZ";
$key = $tekens{rand(0,35)};
for($i=1;$i<$length;$i++)
{
$key .= $tekens{rand(0,35)};
}
return $key;
}
function validationkey($length)
{
$tekens = "1234567890";
$key = $tekens{rand(0,9)};
for($i=1;$i<$length;$i++)
{
$key .= $tekens{rand(0,9)};
}
return $key;
}
if (isset($_POST['submit']) && !empty($_POST['gebruikersnaam']) && !empty($_POST['email']))
{
$gebruikersnaam = mysql_real_escape_string(substr($_POST['gebruikersnaam'],0,255));
$email = mysql_real_escape_string(substr($_POST['email'],0,955));
$valkey = validationkey(10);
$wachtwoord = randomwachtwoord(10);
$wachtwoordmd5 = hash('sha512', $wachtwoord);
$sql2 = "SELECT * FROM users WHERE username='".$gebruikersnaam."' AND email='".$email."'";
$res2 = mysql_query($sql2)or die(mysql_error());
if(mysql_num_rows($res2) < 1) {
echo "De gegevens kunnen niet gevonden worden. Je hebt waarschijnlijk één van de twee ingevulde velden fout getypt. Refresh de pagina (F5) of als je het niet weet, ga naar optie 2.";
}else{
$row = mysql_fetch_assoc($res2);
mysql_query("UPDATE users SET password='".$wachtwoordmd5."' WHERE username='".$gebruikersnaam."'");
mysql_query("INSERT INTO pass_request (query, email, username, password, date, ip) VALUES ('".$valkey."','".$row['email']."','".$row['username']."','".$wachtwoord."',NOW(),'".$_SERVER['REMOTE_ADDR']."')");
$headers = "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "From: Habbowereld.nl Support <[email protected]>";
mail($row['email'],"Habbowereld.nl - Nieuw wachtwoord","
Beste <b>".$row['username']."</b>,<br>
<br>
Wij hebben vernomen dat jij een nieuw wachtwoord aanwil vragen. Omdat wij zeker willen weten dat jij dit daadwerkelijk wilt doen, hebben we deze mail gestuurd. Als je op de onderstaande link klikt dan wordt er automatisch opnieuw een email gestuurd met het daarin nieuwe wachtwoord.<br>
<br>
<a href='http://www.habbowereld.nl/newpass/".$valkey."'>http://www.habbowereld.nl/newpass/".$valkey."</a><br>
<i>Klik op bovenstaande link, als hij niet klikbaar is, kopieer dan de URL naar je adresbalk.</i><br>
Als je de pagina hebt geopend, en hij ook is uitgeladen. Dan ontvang je zometeen een email met je nieuwe wachtwoord.<br>
<br>
Hopelijk hebben wij jou voldoende kunnen informeren.<br>
<br>
<br>
Met vriendelijke groet,<br>
<br>
:: Habbowereld Support<br>
:: [email protected]<br>
:: www.habbowereld.nl",$headers); // stuur de email
echo "<br><br><b>De mail is succesvol verstuurd, volg de stappen in je mailbox. Als dit is gebeurd ontvang je daarna je nieuwe wachtwoord.</b>"; // leuk uitlegje
}
}else{
// FORM
}
echo ubb('[/box]');
?>
Is het zo duidelijker?
Gewijzigd op 01/01/1970 01:00:00 door stefan
Maar hier blijkt niet uit dat jij via de e-mail een andere code krijgt dan in je database staat. Heb je zelf al handmatig de code in de mail vergeleken met de code die in de database staat? (Vraag maar even voor de zekerheid).
Zit er niet gewoon per ongeluk een fout in de verwerkingspagina? Of dat je met een .htaccess het geheel herschrijft, maar dat er iets niet helemaal goed gaat?
Gebruik wat meer foutafhandeling. Controleer bijv. of de insert en update queries gelukt zijn, en of de mail daadwerkelijke verstuurd wordt.
- ik ontvang mail (met andere validatiecode)
- wachtwoord wordt in users geupdate
- gegevens worden aangemaakt in pass_request.
- Als je code uit database vergelijkt met mail, dan doet die van de mail het niet. Maar die in de database staat wel.
Je hebt de database gecontroleerd na bovenstaand script uitgevoerd te hebben en vóórdat je op je link in de mail hebt geklikt? En in de databasetabel pass_request in het veld query staat dan een andere code dan in de mail?
Ja, dat is precies het probleem.
Is het dan wel hetzelfde, dan roep je de functie dus 2x aan.
Kun je daar een voorbeeld van geven? Ik snap je niet helemaal.
Lijkt mij geheel onmogelijk. Dus denk ik dat je het ergens anders moet gaan zoeken. Wordt er niets tussendoor gewijzigd door andere pages?
Het is zeg maar onderdeel van een pagina.
je hebt het bestand index.php
die include
- setup.php
daarin staan stylesheets, verbinding naar databases enz.
en dan heb je het gewone bestand waar het layout in staat.
menu en linkermenu haalt hij uit de database.
en dan de hoofdpagina wordt geinclude via pages.php. Dit is apart omdat je hem dan ook kunt printen.
Maar volgens mij ligt het daar niet aan.
heb je bijv. niet varchar(20) oid.
dan wordt ie namelijk na het 20e teken afgekapt.
gr
Staat er überhaupt wel iets in je database? Bestaat de DB-cel 'query' wel? Zo ja, als je het gaat controleren, haalt hij het dan ook uit deze DB-cel?
Ook nog een vraagje: Is in de tabel users de username wel UNIQUE?
ja, dat ook
Je code is erg slecht te lezen omdat je niet netjes inspringt. Verder controleer je niet of je query's wel lukken. En waarom gebruik je twee verschillende tabellen? Maak gewoon een veld "active", type TINYINT. Standaard zet je die op 0, totdat iemand om de validatielink heeft geklikt. Daarna zet je hem op 1.
Het enige wat ik heb gedaan is dit gewijzigd:
$valkey = validationkey(10);
en daar heb ik van gemaakt:
$valkey2 = validationkey(10);
$valkey = $valkey2;
en toen deed hij het wel.
stefan schreef op 26.09.2009 23:40:
Ik heb hem zelf getest
- ik ontvang mail (met andere validatiecode)
- wachtwoord wordt in users geupdate
- gegevens worden aangemaakt in pass_request.
- Als je code uit database vergelijkt met mail, dan doet die van de mail het niet. Maar die in de database staat wel.
- ik ontvang mail (met andere validatiecode)
- wachtwoord wordt in users geupdate
- gegevens worden aangemaakt in pass_request.
- Als je code uit database vergelijkt met mail, dan doet die van de mail het niet. Maar die in de database staat wel.
Zou jij na iedere keer dat er een wachtwoord is vergeten de database willen gaan checken of het allemaal gelukt is? Ik denk dat daar veel makkelijkere manieren voor zijn...