få tilsendt password, fra email i stedet for brugernavn
Jeg har nedenstående script hvor en bruger kan indtaste sit brugernavn hvis han har glemt sit password. Han får så automatisk tilsendt et nyt. Jeg ville nu bare hellere have at det var brugerens email som skulle indtastes i stedet for. kan det umiddelbart lade sig gøre?<?PHP
require_once('common.php');
session_start();
function reset_password($newPass, $userName)
{
$query = "update users set userPassword = password('$newPass') where username='$userName'";
$result = mysql_query($query);
return mysql_errno();
}
function gen_password()
{
$str="abcdefghijklmnopqrstuvwxyz01234567890";
srand((double)microtime()*1000000);
for($i=0; $i < 6 ; $i++)
{
$password .= $str[rand(0,62)];
}
return $password;
}
if(!isset($_REQUEST['submit']))
{
?>
<form action="reminder.php" method="post">
<table width="540" border="0" cellspacing="2" cellpadding="0">
<tr>
<td>
<h4><? echo $msg_password_reminder; ?></h4>
</td>
</tr>
<tr>
<td><input type="text" name="username" size="24" border="0"> <input type="submit" name="submit" value="Send adgangskode" border="0"></td>
</tr>
</table>
</form>
<?PHP
}
else
{
if(is_valid_referer())
{
$username = sanitize_variable($_REQUEST['username']);
$email = get_email($username);
if($email!="")
{
$pwd = gen_password();
if(reset_password($pwd,$username) != 0)
{
err_message('Dit password kunne ikke blive nulstillet');
}
else
{
$fmt = join("",file("reminder.txt"));
$message = sprintf($fmt,$username,$pwd);
mail($email,"Ny adgangskode",$message,"From: $member_service_email\n");
err_message($msg_pass_changed);
}
}
else
{
err_message('Din nye adgangskode kunne ikke blive sendt til dig, da du ikke har indtastet et gyldigt brugernavn. Tryk <a href="signup.php">HER</a> og opret dig som ny bruger.');
}
}
else
{
err_message('Un-authorized access detected your ip has been logged');
}
}
?>
