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.
<?
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]');
?>