Avatar billede JJ77 Juniormester
02. april 2006 - 00:31 Der er 2 kommentarer og
1 løsning

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');
       
    }
}

?>
Avatar billede fixxxer Nybegynder
02. april 2006 - 18:54 #1
Det ville jo egenlig bare være at tilrette reset_password funktionen.

function reset_password($newPass, $email)
{
    $query = "update users set userPassword = password('$newPass') where email='$email'";
    $result = mysql_query($query);
    return mysql_errno();
}

Men jeg ved naturligvis ikke hvad feltet med email adressen hedder i din tabel "users", jeg har blot givet et kvalificeret gæt :)
Avatar billede JJ77 Juniormester
02. april 2006 - 21:07 #2
feltet med brugerens email ligger i en anden tabel som hedder userProfile og feltet hedder userEmail.. hjælper det på det?
Avatar billede JJ77 Juniormester
03. april 2006 - 18:46 #3
Hmmm.. virker ikke.. prøver lige at oprette det igen til lidt flere point.. tak for forsøget:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester