Avatar billede sqren Nybegynder
12. juli 2003 - 12:23 Der er 5 kommentarer og
2 løsninger

Få tilsendt et glemt md5 password

Jeg har et brugersystem med en md5 password kryptering. Jeg er udmærket klar over at det er en envejs-kryptering og at det ikke er muligt at dekryptere et md5 password. Jeg vil derimod gerne have lavet det sådan at hvis man har glemt sit password kan man skrive sin mail og så får man tilsendt et nyt tilfældigt (det tilfældige password skal overskrive det gamle i databasen). Når man så logger ind med det nye tilfældige password skal man kunne ændre det.

Så!
Jeg vil gerne have en funktion der opretter et tilfældigt password, gemmer det i databsen og sender det.

Og en funktion der gør så man kan ændre sit password.

Har selv lavet et lille forsøg, men ved godt det er MEGET langt ude.

<?php require("config.php3"); ?>
<?php include("funktioner.php3"); ?>

E-mail<INPUT type=text name=angivetmail>
<INPUT type=submit value='Send Besked' name=send>

<?php

$password = "";
$passstring = "abcdefghijklmnopqrstuvwxyzæøåABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ1234567890";
for($i=0; $i<6; $i++)
{
    $password .= $passstring[rand(0, strlen($passstring))];
}

    mysql_query("insert into users (pass) values (md5('$_POST[password]'))");

$sendmail = mysql_query("select * from users where email='$angivetmail'") or die(mysql_error());
while ($row = mysql_fetch_array($sendmail)) {

mail("row[email]", "Emne", "Besked", "From: Ditnavn <din@mail.dk>\nContent-type: text/html; charset=iso-8859-1");

}
?>
Avatar billede roenving Novice
12. juli 2003 - 12:34 #1
PS. Tag ikke O og 0 med og udelad også l1I ...
Avatar billede tipsen Nybegynder
12. juli 2003 - 12:35 #2
Til at generere passwords af forskellig type kan følgende anbefales:

http://pear.php.net/package-info.php?pacid=207
Avatar billede sqren Nybegynder
12. juli 2003 - 13:31 #3
Tak for svarene. Vil kigge på det. Men jeg vil gerne have de funktioner jeg har skrevet overnfor, skrevet direkte her. Jeg er ikke så god til PHP og som i kan se går det ikke så godt når jeg selv flikker noget sammen.
Avatar billede ohmish Nybegynder
13. juli 2003 - 01:43 #4
du kan lege lidt med det her:

$checkglem = @mysql_query("SELECT brugernavn, email FROM medlemmer WHERE email='$gemail' ");
    $krow = @mysql_fetch_array($checkglem);
    $realemail = $krow["email"];
    $realbruger = $krow["brugernavn"];
    $findes = @mysql_num_rows($checkglem);
    if ($findes == 0) { $glemstatus= "Fejl: ugyldig emailadresse. bruger ikke fundet"; }
    else {

    function nytpass($length = 6) {
    $allow = "1oa7bcdu2eaf4gehixjkemno8pq9rstui3wav6yoziy5uy";
    $ps_len = strlen($allow);
    mt_srand((double)microtime()*1000000);
    $pass = "";
    for($i = 0; $i < $length; $i++) {
    $pass .= $allow[mt_rand(0,$ps_len-1)];
    }
    return $pass; } $nytkodeord = nytpass();

$to = "$realbruger <$realemail>";
$subject = "Glemt brugernavn/kodeord";
$message.= "Auto-email.\n\n";
$message.= "Af tekniske grunde er dit kodeord blevet nulstillet og fornyet.\n";
$message.= "Dit brugernavn er stadig: $realbruger\n";
$message.= "Dit NYE kodeord er: $nytkodeord\n\n";
$message.= "Husk at ændre dit kodeord når du logger ind\n\n";
$message.= "Mvh, \n";
$message.= "WEBMASTER\n";
$extraheader="From: WEBMASTER <din@email.dk>\r\n";
$extraheader.="Reply-To: din@email.dk\r\n";
@mail($to,$subject,$message,$extraheader);

@mysql_query("UPDATE medlemmer SET kodeord=md5('$nytkodeord') WHERE brugernavn='$realbruger' AND email='$gemail' ");
header ("Location: kodeord.php?s=kodeord&glemt=$realemail");
}

if ($_GET['glemt']) { echo "<br><br>Et nyt kodeord er sendt til ".$_GET['glemt']; }
Avatar billede ohmish Nybegynder
13. juli 2003 - 01:45 #5
så ska du bare lave en form under koden, og kalde email feltet for gemail.

og hov.. over koden skal der lige puttes det her ind:
$gemail = $_POST['gemail'];
Avatar billede sqren Nybegynder
01. august 2003 - 19:14 #6
Kan ikke rigig få det til at virk. Den kommer ikke med nogen fejlmeddelelse, men den sender ikke passwordet og ændrer det ikke i databasen. Kan du ikke skrive hele koden så jeg bare skal ændrer navnet på tabellen mm.
Og hvad med et ændr password script?
Kan godt sætte point op.
Avatar billede sqren Nybegynder
01. august 2003 - 23:43 #7
Undskyld, men nu har jeg siddet og kigget HELE nettet igennem. Fandt til sidst et... OG JEG FIK DET TIL AT VIRKE! The newbie har fået noget til at virke! FEDT! Nå, men her er det:


<?php

$db=mysql_connect("localhost", "xxx", "xxx");
mysql_select_db("xxx", $db);


    if (empty($email))
    {
    echo 'Du skal skrive din email';
    }
    else
    {
    $post_mail = mysql_escape_string($_POST['email']);

    $pass = substr(ereg_replace("[^A-Za-z2-9]", "", crypt(time())),0,10);
   
    $result_mail = mysql_query("SELECT email FROM users WHERE email = '$post_mail'") or die (mysql_error());
   
    $array_mail = mysql_fetch_array($result_mail);

    mysql_query("UPDATE users SET pass=MD5('$pass') WHERE email='$post_mail'") or die (mysql_error());
       
    $query = mysql_query("SELECT * FROM users WHERE email = '$email'");
    while($row = mysql_fetch_array($query))
    {
    $pw = $row['pass'];
    }
        if($array_mail['email'] == $email) {
        $msg = 'Dit nye password er: '.$pass;
        $recipient = $array_mail['email'];
        $subject = 'Password';
        mail($recipient, $subject, $msg);
        echo 'Password sendt!';
    }
    else
    {   
        echo 'Forkert mail';
    }
    }
?>


Tager selv the points. Er det OK?
Hvis i har indsigelser så kom med dem inden imorgen.
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