Maak een pagina waar je vraagt om het e-mail of de gebruikersnaam,
zodra deze is ingevuld stuur je een link naar het desbetreffende e-mail adres met bijvoorbeeld: ?id=blablabla
voor blablabla moet je dan het ingevulde e-mail adres of gebruikersnaam gecodeerd invullen:
dus
jounaam@ditemail.com word dan bijv: 4eac20790fc4ba4237c93fa5b3feff29 (md5).
dus je krijgt een link naar een pagina op je e-mail met: pwreset.php?id=4eac20790fc4ba4237c93fa5b3feff29
als mensen daar dan komen laat je php checken of deze code overeenkomt met een ander e-mail/username die je eerst encrypt zodat ze hetzelfde worden.
klopt dit dan kan hij een nieuw wachtwoord invullen.
dus:
Vraag naar username / email
stuur mail naar desbetreffende e-mail met een link waarin het ID de encoded versie van de username/email is
laat de pagina van die link controleren of deze encrypted matchet met een e-mail / username in de database (die je eerst moet encrypten in je code)
en zo ja laat ze een nieuw wachtwoord invoeren.
Edit:
Hier is de code die ik heb,
er zijn enkele functies zoals $website die heb ik een een andere code definet, maar dat kun je hier zelf wel invullen hoop ik.
Sorry voor de warrige code
PHP:
<?
// vergeet de database connectie niet!!
$getpw = $_GET['resetpw'];
$getid = $_GET['id'];
if(isset($_POST['submit2']) == true) {
$password1 = $_POST['password1'];
$password2 = $_POST['password2'];
if($password1 == $password2) {
$password = md5($password1);
mysql_query("UPDATE `users` SET `password` = '$password' WHERE `email_code` = '$getpw'");
echo 'Password changed! <br />';
echo 'You will be automatically redirected. <br /> if not, click this link: <a href="'.$website.'">'.$website.'</a>';
echo '<meta http-equiv="refresh" content="5;'.$website.'" />';
}
else {
$_SESSION['error'] = 'Passwords didn\'t match <br /> De wachtwoorden kwamen niet overeen';
$tothis = "";
redirect($tothis);
}
}
elseif(isset($getpw) == true && isset($getid) == true) {
$emailinfo = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `email_code` = '$getpw'"));
if(isset($emailinfo['email']) == true) {
if($_GET['id'] == md5($emailinfo['username'])) {
?>
<form method="post" action="">
New Password:<br />
Nieuw wachtwoord:<br />
<input type="password" name="password1" />
<br />
Confirm:<br />
Bevestig:<br />
<input type="password" name="password2" />
<br /> <br />
<input type="submit" name="submit2" value="continue / ga verder / fortsetzen" />
</form>
<?
}
else {
echo 'Invalid link! <br />';
echo 'You will be automatically redirected. <br /> if not, click this link: <a href="'.$website.'">'.$website.'</a>';
echo '<meta http-equiv="refresh" content="5;'.$website.'" />';
}
}
else {
echo 'Invalid link! <br />';
echo 'You will be automatically redirected. <br /> if not, click this link: <a href="'.$website.'">'.$website.'</a>';
echo '<meta http-equiv="refresh" content="5;'.$website.'" />';
}
}
else {
if(isset($_POST['submit']) == true && isset($_POST['e-mail']) == true) {
$email = $_POST['e-mail'];
$emailinfo = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `email` = '$email'"));
if(empty($emailinfo['email']) == true) {
}
else {
$md5user = md5($emailinfo['username']);
$to = $email;
$subject = 'Password recovery / reset';
$message = '
Dear '.$emailinfo['username'].',
If you have lost your password, you can reset it by clicking the link below:
'.$website.'admin/lostpw.php?resetpw='.$emailinfo['email_code'].'&&id='.$md5user.'
Als u uw wachtwoord bent verloren, kunt u het opnieuw instellen door de link hieronder aan te klikken:
'.$website.'admin/lostpw.php?resetpw='.$emailinfo['email_code'].'&&id='.$md5user.'
Kind Regards / Met vriendelijke groet,
The '.$website.' team.
';
mail($to, $subject, $message, $headers);
echo 'We have sended you a e-mail with further instructions! <br />';
echo 'You will be automatically redirected. <br /> if not, click this link: <a href="'.$website.'">'.$website.'</a>';
echo '<meta http-equiv="refresh" content="5;'.$website.'" />';
echo '<meta http-equiv="refresh" content="5;'.$website.'" />';
}
}
else {
?>
<form method="post" action="">
Enter your E-mail address: <br />
Voer uw E-mail adres in: <br />
Geben Sie Ihre E-Mail-Adresse: <br /><br />
<input type="text" name="e-mail" />
<br /><br />
<input type="submit" name="submit" value="continue / ga verder / fortsetzen" />
</form>
<?
}
}
?>