Avatar billede sqren Nybegynder
24. juni 2003 - 08:45 Der er 5 kommentarer og
2 løsninger

md5 kryptering

Hej, jeg har et internt mailsystem. Det virker fint, men det er bare ærgeligt at password'ene ikke står krypteret i databasen. Jeg har selv prøvet, men det gik ikke super ;)
Derfor vil jeg gerne have noget hjælp til at gøre så når man opretter sig bliver ens password lavet om til md5 kryptering og når man logger ind... Kan man logge ind...

--opret.php3--
<?
if ($action == opret){
    $opret_nick = TjekNick($nick);
    if ($opret_nick == no){
        print "Dit nick er enten for kort(3tegn) eller for langt(16tegn)";
    }
    else {
        $nick = OrdneNick($nick);
        $msg = Opret($nick,$pass1,$pass2,$email);
        print "$msg";
        $msg1 = "Du blev oprettet med brugeren: ".$nick."";
        if ($msg == $msg1){?>
            <META HTTP-EQUIV="Refresh" CONTENT="3; URL=index.php3" target=_parent>
        <?
        }
    }
}
?>
<body background="../bg.jpg">
<form name="form" method="post" action="<?print "$PHP_SELF?side=opret&action=opret";?>">
<table width="23%" border="1" bordercolor="#000000">
    <tr>
      <td width="51%">Brugernavn</td>
      <td width="49%">
        <input type="text" name="nick" maxlength="16">
      </td>
    </tr>
    <tr>
      <td width="51%">Kode</td>
      <td width="49%">
        <input type="password" name="pass1" maxlength="16">
      </td>
    </tr>
    <tr>
      <td width="51%">Kode*</td>
      <td width="49%">
        <input type="password" name="pass2" maxlength="16">
      </td>
    </tr>
    <tr>
      <td width="51%">E-mail **</td>
      <td width="49%">
        <input type="text" name="email" maxlength="30">
      </td>
    </tr>
    <tr>
      <td width="51%">Klik Opret&gt;&gt;</td>
      <td width="49%">
        <input type="submit" name="opret" value="Opret bruger">
      </td>
    </tr>
  </table>
<p>* = Endnu en indtastning af kode for at undg&aring; tastefejl!<br>
  ** = For at gøre glem kode funktionen tilgængelig!</p>
<p> <a href=index.php3 target=_self>Tryk her for at gå tilbage</a> </p>
</form>

--login.php3--
<?
if ($action == "login"){
    $id = GetID();
    $sesid = GetSESID();
    $opret_nick = TjekNick($nick);
    if ($opret_nick == no){
        print "Dit nick er enten for kort(3tegn) eller for langt(16tegn)<br><br>";
    }
    else {
        $ip = $REMOTE_ADDR;
        $nick = OrdneNick($nick);
        $nick1 = addslashes($nick);
        $pass1 = addslashes($pass);
        $login = login($id,$sesid,$nick1,$pass1,$ip);
        if ($login == ok){?>
            <META HTTP-EQUIV="Refresh" CONTENT="0; URL=inde.php3?id=<?echo $id;?>&sesid=<?echo $sesid;?>" target=_self>
        <?
        }
        else {
            print "$msg<br>";
        }
    }
}
else {
?>
<body background="../bg.jpg">
<br><br><br><br><form name="form1" method="post" action="<? print "$PHP_SELF";?>" target="_parrent">
  <table width="50%" border="1" bordercolor="#000000" align="center">
    <tr>
      <td>
        <div align="center">Brugernavn</div>
      </td>
      <td>
        <div align="center"></div>
      </td>
      <td>
        <div align="center">Brugerkode</div>
      </td>
    </tr>
    <tr>
      <td>
        <div align="center">
          <input type="text" name="nick">
        </div>
      </td>
      <td>
        <div align="center">
          <input type="hidden" name="action" value="login">
          <input type="submit" name="Login-knap" value="Log ind">
        </div>
      </td>
      <td>
        <div align="center">
          <input type="password" name="pass">
        </div>
      </td>
    </tr>
  </table>
</form>
Vil du gerne registreres? <a href=?side=opret target=_self>Klik her!</a><br>
Glemt kode? <a href=?side=glemt_kode target=_self>Klik her!</a><br><br><br><br>
<?
}
?>

--funktioner.php3--
<?
require("config.php3");
    mysql_connect($dbhost, $dbuser, $dbpass);
    mysql_select_db($database);

function GetID(){
    $id = time()+time()*time()+5;
    $id = md5($id);
    return $id;
}
function GetSESID(){
    $sesid = time()-564+time()+15*time()+4465;
    $sesid = md5($sesid);
    return $sesid;
}
function TjekNick($nick){
    $nick = ereg_Replace(" {3,}"," ", $nick);
    $nick = ereg_Replace("  ", " ", $nick);
    if (strlen($nick) < 3) { $opret_nick = no;}
    elseif (strlen($nick) > 16) { $opret_nick = no;}
    else { $opret_nick = $nick;}
    return $opret_nick;
}
function OrdneNick($nick){
    $nick = htmlspecialchars($nick);
    $nick = ereg_Replace("'", "´",$nick);
    return $nick;
}
function OnlineBrugere(){
    $res = mysql_query("SELECT * FROM users_online") or die (mysql_error());
    $tal = mysql_num_rows($res);
    return $tal;
}
function Afsender($id){
    $res_afsender = mysql_query("SELECT nick FROM users where id='$id'");
    $row_afsender = mysql_fetch_array($res_afsender);
    $afsender = $row_afsender[nick];
    return $afsender;
}
function Modtagere($id){
    $res_modtager = mysql_query("SELECT * FROM users where id!='$id' ORDER BY nick ASC") or die (mysql_error());
    while($row_modtager = mysql_fetch_array($res_modtager)){
        print "<option value=\"".$row_modtager[id]."\">".$row_modtager[nick]."</option>\n";
    }
}
function Modtager($id){
    $res_modtager = mysql_query("SELECT nick FROM users where id='$id'") or die (mysql_error());
    $row_modtager = mysql_fetch_array($res_modtager);
    $modtager = $row_modtager[nick];
    return $modtager;
}
function HentBrugerOplysninger($id){
    $res_brugerinfo = mysql_query("SELECT * FROM users_online where id='$id'") or die (mysql_error());
    $row_brugerinfo = mysql_fetch_array($res_brugerinfo);
    $brugerinfo[id] = $row_brugerinfo[id];
    $brugerinfo[sesid] = $row_brugerinfo[sesid];
    $brugerinfo[nick] = $row_brugerinfo[nick];
    $brugerinfo[pass] = $row_brugerinfo[pass];
    $brugerinfo[LastAction] = $row_brugerinfo[LastAction];
    $brugerinfo[ip] = $row_brugerinfo[ip];
    $brugerinfo[uid] = $row_brugerinfo[uid];
    return $brugerinfo;
}
function login($id,$sesid,$nick,$pass,$ip){
    $res_find_bruger = mysql_query("SELECT * FROM users where nick='$nick'") or die (mysql_error());
    if (mysql_num_rows($res_find_bruger) == 1){
        $row_find_bruger = mysql_fetch_array($res_find_bruger);
        if ($row_find_bruger[pass] != $pass){
            print "Brugerkoden passer ikke overens med databasens! ".$nick.",".$pass."";
            $login = deni;
        }
        else {
            $res_bruger_online = mysql_query("SELECT * FROM users_online where nick='$nick'") or die ("Fejl her");
            if ($res_bruger_online){
                mysql_query("DELETE FROM users_online where nick='$nick'") or die (mysql_error());
            }
            $res_opret_bruger_online = mysql_query("INSERT INTO users_online (id,sesid,nick,pass,ip,LastAction,Login,uid)
                                VALUES('$id','$sesid','$nick','$pass','$ip',now(),now(),'$row_find_bruger[id]')") or die ("Fejl under oprettelse af brugersession!");
            $res_opdater_users = mysql_query("UPDATE users SET lastip='$ip',LastLogin=now() where id='$row_find_bruger[id]'") or die (mysql_error());
            $login = ok;
        }
    }
    else {
        print "Brugeren blev ikke fundet i databasen!";
        $login = deni;
    }
    return $login;
}
function logaf($id,$sesid){
    $res_find_bruger = mysql_query("SELECT * FROM users_online where id='$id' and sesid='$sesid'");
    $row_find_bruger = mysql_fetch_array($res_find_bruger);
    $logaf = mysql_query("DELETE FROM users_online where id='$id' and sesid='$sesid'");
    if ($logaf){
        $msg = "Tak for besøget ".$row_find_bruger[nick]."<br>Du er blevet logget";
    }
    else {
        $msg = "Der er opstået en fejl under logaf!";
    }
    return $msg;
}
function Opret($nick,$pass1,$pass2,$email){
    $res_find_bruger = mysql_query("SELECT * FROM users where nick='$nick'") or die (mysql_error());
    if (mysql_num_rows($res_find_bruger) == 1){
        $msg = "Der findes allerede en bruger med navnet: ".$nick."";
    }
    elseif($pass1 != $pass2) {
        $msg = "De indtastede koder stemmer IKKE overens!";
    }
    elseif(($email) && ($pass1 == $pass2) && (mysql_num_rows($res_find_bruger) == 0)){
        $nick = TjekNick($nick);
        $nick = OrdneNick($nick);
        $res_opret_bruger = mysql_query("INSERT INTO users (nick,pass,email) VALUES('$nick','$pass1','$email')");
        if ($res_opret_bruger){
            $msg = "Du blev oprettet med brugeren: ".$nick."";
        }
        else {
            $msg = "Der skete en fejl under oprettelsen!";
        }
    }
    else {
        $msg = "Fejl";
    }
    return $msg;
}
?>
Avatar billede avminarm Juniormester
24. juni 2003 - 09:27 #1
$md5pass = MD5($pass1);
$res_opret_bruger = mysql_query("INSERT INTO users (nick,pass,email) VALUES('$nick',$md5pass,'$email')");

man kan også bare smide den direkte i SQL sætningen
Avatar billede jensgram Nybegynder
24. juni 2003 - 10:13 #2
Faldt lige over denne funktion, som kan laves lidt simplere:

function HentBrugerOplysninger($id){
    $res_brugerinfo = mysql_query("SELECT * FROM users_online WHERE id='$id'") or die (mysql_error());
    $row_brugerinfo = mysql_fetch_assoc($res_brugerinfo);
    return $row_brugerinfo;
}

Men det er O/T
Avatar billede sukos Juniormester
24. juni 2003 - 15:11 #3
Du kan også kikke lidt koder på http://www.showsource.dk/index.php?show=source
Vælg db_handle i select-boxen, og kik efter "//Nyt brugernavn"
Avatar billede sqren Nybegynder
29. juni 2003 - 19:27 #4
Tak for svarene. Vil snart kigge på dem, men har lidt travlt. Go' sommer!
Avatar billede sqren Nybegynder
30. juni 2003 - 19:08 #5
avminarm--> Der skal der mange flere funktioner til. Der skal der laves en md5 ved login, ved oprettelse og ved skrivelse til online users. Jeg ved godt det er svært at lave det når i kun har nogle sider ud af et stort system. Jeg vil bare sige at jeg selv fandt ud af det, men i kan stadig få nogle point hvis i vil.

--funktioner.php3--
<?
require("config.php3");
    mysql_connect($dbhost, $dbuser, $dbpass);
    mysql_select_db($database);

function GetID(){
    $id = time()+time()*time()+5;
    $id = md5($id);
    return $id;
}
function GetSESID(){
    $sesid = time()-564+time()+15*time()+4465;
    $sesid = md5($sesid);
    return $sesid;
}
function TjekNick($nick){
    $nick = ereg_Replace(" {3,}"," ", $nick);
    $nick = ereg_Replace("  ", " ", $nick);
    if (strlen($nick) < 3) { $opret_nick = no;}
    elseif (strlen($nick) > 16) { $opret_nick = no;}
    else { $opret_nick = $nick;}
    return $opret_nick;
}
function OrdneNick($nick){
    $nick = htmlspecialchars($nick);
    $nick = ereg_Replace("'", "´",$nick);
    return $nick;
}
function OnlineBrugere(){
    $res = mysql_query("SELECT * FROM users_online") or die (mysql_error());
    $tal = mysql_num_rows($res);
    return $tal;
}
function Afsender($id){
    $res_afsender = mysql_query("SELECT nick FROM users where id='$id'");
    $row_afsender = mysql_fetch_array($res_afsender);
    $afsender = $row_afsender[nick];
    return $afsender;
}
function Modtagere($id){
    $res_modtager = mysql_query("SELECT * FROM users where id!='$id' ORDER BY nick ASC") or die (mysql_error());
    while($row_modtager = mysql_fetch_array($res_modtager)){
        print "<option value=\"".$row_modtager[id]."\">".$row_modtager[nick]."</option>\n";
    }
}
function Modtager($id){
    $res_modtager = mysql_query("SELECT nick FROM users where id='$id'") or die (mysql_error());
    $row_modtager = mysql_fetch_array($res_modtager);
    $modtager = $row_modtager[nick];
    return $modtager;
}
function HentBrugerOplysninger($id){
    $res_brugerinfo = mysql_query("SELECT * FROM users_online where id='$id'") or die (mysql_error());
    $row_brugerinfo = mysql_fetch_array($res_brugerinfo);
    $brugerinfo[id] = $row_brugerinfo[id];
    $brugerinfo[sesid] = $row_brugerinfo[sesid];
    $brugerinfo[nick] = $row_brugerinfo[nick];
    $brugerinfo[pass] = $row_brugerinfo[pass];
    $brugerinfo[LastAction] = $row_brugerinfo[LastAction];
    $brugerinfo[ip] = $row_brugerinfo[ip];
    $brugerinfo[uid] = $row_brugerinfo[uid];
    return $brugerinfo;
}
function login($id,$sesid,$nick,$pass,$ip){
    $res_find_bruger = mysql_query("SELECT * FROM users where nick='$nick'") or die (mysql_error());
    if (mysql_num_rows($res_find_bruger) == 1){
        $row_find_bruger = mysql_fetch_array($res_find_bruger);
        if ($row_find_bruger[pass] != md5($pass)){
            print "Brugerkoden passer ikke overens med databasens! ".$nick.",".$pass."";
            $login = deni;
        }
        else {
            $res_bruger_online = mysql_query("SELECT * FROM users_online where nick='$nick'") or die ("Fejl her");
            if ($res_bruger_online){
                mysql_query("DELETE FROM users_online where nick='$nick'") or die (mysql_error());
            }
            $res_opret_bruger_online = mysql_query("INSERT INTO users_online (id,sesid,nick,pass,ip,LastAction,Login,uid)
                                VALUES('$id','$sesid','$nick',md5('$pass'),'$ip',now(),now(),'$row_find_bruger[id]')") or die ("Fejl under oprettelse af brugersession!");
            $res_opdater_users = mysql_query("UPDATE users SET lastip='$ip',LastLogin=now() where id='$row_find_bruger[id]'") or die (mysql_error());
            $login = ok;
        }
    }
    else {
        print "Brugeren blev ikke fundet i databasen!";
        $login = deni;
    }
    return $login;
}
function logaf($id,$sesid){
    $res_find_bruger = mysql_query("SELECT * FROM users_online where id='$id' and sesid='$sesid'");
    $row_find_bruger = mysql_fetch_array($res_find_bruger);
    $logaf = mysql_query("DELETE FROM users_online where id='$id' and sesid='$sesid'");
    if ($logaf){
        $msg = "Tak for besøget ".$row_find_bruger[nick]."<br>Du er blevet logget";
    }
    else {
        $msg = "Der er opstået en fejl under logaf!";
    }
    return $msg;
}
function Opret($nick,$pass1,$pass2,$email){
    $res_find_bruger = mysql_query("SELECT * FROM users where nick='$nick'") or die (mysql_error());
    if (mysql_num_rows($res_find_bruger) == 1){
        $msg = "Der findes allerede en bruger med navnet: ".$nick."";
    }
    elseif($pass1 != $pass2) {
        $msg = "De indtastede koder stemmer IKKE overens!";
    }
    elseif(($email) && ($pass1 == $pass2) && (mysql_num_rows($res_find_bruger) == 0)){
        $nick = TjekNick($nick);
        $nick = OrdneNick($nick);
        $res_opret_bruger = mysql_query("INSERT INTO users (nick,pass,email) VALUES('$nick',md5('$pass1'),'$email')");
        if ($res_opret_bruger){
            $msg = "Du blev oprettet med brugeren: ".$nick."";
        }
        else {
            $msg = "Der skete en fejl under oprettelsen!";
        }
    }
    else {
        $msg = "Fejl";
    }
    return $msg;
}
?>
Avatar billede avminarm Juniormester
01. juli 2003 - 09:03 #6
giv - hvad du synes er rimeligt :o)
Avatar billede sqren Nybegynder
01. juli 2003 - 15:00 #7
Nu ta'r jeg havldelen selv og giver den anden halvdel til avminarm.
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