Avatar billede human Nybegynder
26. oktober 2003 - 02:03 Der er 22 kommentarer og
2 løsninger

Måske problem med MD5

Nogen der kan sige mig hvorfor det her ikke virker? Et login tjek. Felterne i tabellen hedder login og pass.

$user = $_POST['$user'];
$pass = $_POST['$pass'];

$pass = md5($pass);

$sql = mysql_query("SELECT * FROM users WHERE login='$user' AND pass='$pass'");
$login_check = mysql_num_rows($sql);

if($login_check > 0){
    while($row = mysql_fetch_array($sql)){
    foreach( $row AS $key => $val ){
        $$key = stripslashes( $val );
    }
        session_register('user');         $_SESSION['user'] = $user;
        session_register('firstname');  $_SESSION['firstname'] = $firstname;
        session_register('lastname');  $_SESSION['lastname'] = $lastname;
        session_register('email');      $_SESSION['email'] = $email;
       
              header("Location: login_success.php");
        }
    }else{
    print "Your username does not excist or the password was incorrect!";
}
mysql_close($conn);

Jeg får fejlen: Your username does not excist or the password was incorrect! Men nu ved jeg jo det er rigtigt det jeg taster. Inden pass smides i tabellen laver jeg en:
$pass = MD5($md5pass);

Har på fornemmelse det er der den går i stykker.
Avatar billede bearhugx Nybegynder
26. oktober 2003 - 02:14 #1
den skal jeg lige have igen..

det er vel

$md5Pass = md5($cleartextPass);
og så insert af $md5Pass i databasen - er det ikke ?
Avatar billede bearhugx Nybegynder
26. oktober 2003 - 02:15 #2
derudover er jeg også i tvivl om hvad du forsøger at opnå med den

  foreach( $row AS $key => $val ){
        $$key = stripslashes( $val );
    }
Avatar billede squashguy Nybegynder
26. oktober 2003 - 02:18 #3
hvis form-felterne hedder user og pass:

$user = $_POST['user'];
$pass = $_POST['pass'];
Avatar billede squashguy Nybegynder
26. oktober 2003 - 02:19 #4
jeg kan heller ikke se hvad du vil med en løkke, der er vel kun een bruger med det samme login
Avatar billede human Nybegynder
26. oktober 2003 - 02:20 #5
Hvad jeg vil med det nederste er alt fjerne alle backslashes.

Når er bruger registrere sig laver jeg hans pass om til md5 inden det ryger i db'en. Når han så skal logge ind, så skal det vel krypteres igen for at tjekke om det stemmer overens med krypteringen i db'en, ik?

Det er det jeg vil med det. Men det er første gang jeg arbejder med md5, så er i tvivl :o)
Avatar billede bearhugx Nybegynder
26. oktober 2003 - 02:20 #6
squash >> du har ret - hvorfor så jeg ikke lige det - der er formentlig ikke nogle request-variabler som hedder $user og $pass - men nok user og pass :-)
Avatar billede human Nybegynder
26. oktober 2003 - 02:21 #7
Ja.. Men der er mere end hans user og pass i tabellen.
Avatar billede squashguy Nybegynder
26. oktober 2003 - 02:21 #8
du har en WHERE på i din sql, dvs den returnerer kun een post
Avatar billede bearhugx Nybegynder
26. oktober 2003 - 02:22 #9
jeg mangler også at se,hvordan du egenlig henter f.eks. $firstname ud... burde det ikke være $row["firstname"] for at hente den ud af db'en...
Avatar billede squashguy Nybegynder
26. oktober 2003 - 02:22 #10
din md5 er korrekt
Avatar billede bearhugx Nybegynder
26. oktober 2003 - 02:23 #11
squash >> jeg må indrømme at "WHERE i sql-sætning" ==> "een post" er en lidt grov generalisering... Men i dette tilfælde vil der fomentligt kun være enten 0 eller 1 post i result-settet...
Avatar billede squashguy Nybegynder
26. oktober 2003 - 02:25 #12
bear>det er jo til login, så jeg forventer, at han kontrollerer ved oprettelse af bruger, at ikke to brugere kan få samme login :p
Avatar billede human Nybegynder
26. oktober 2003 - 02:25 #13
Æhmm.. Det lyder som det er remelig fucked op. Men hvad der er i vejen med min $sql kan jeg dog ikke se.

En der har et bud på et andet login. Hvad jeg troede der var vejen var åbenbart ikke ivejen. Er lost nu.
Avatar billede human Nybegynder
26. oktober 2003 - 02:25 #14
squashguy: self gør jeg det.
Avatar billede squashguy Nybegynder
26. oktober 2003 - 02:27 #15
human.. der er ikke noget i vejen. tjek dine formfelter.. lave en echo på $user og $pass og se om de indeholder hvad du forventer
Avatar billede human Nybegynder
26. oktober 2003 - 02:30 #16
Kan se den kaster en lang kryptering ud fra pass. Men user udskriver den godt nok ikke. Skidt.

Jeg er blind. Se lige om du kan se hvad det er:

<form action="login-ok.php" method="post">
Username:<br>
<input type="text" name="user"><br>
Password:<br>
<input type="password" name="pass"><br><br>
<input type="submit" name="login" value="login">
</form>

$user = $_POST['$user'];

/me føler sig pinlig over at poste HTML.
Avatar billede human Nybegynder
26. oktober 2003 - 02:31 #17
LOL
Har set det nu.
Avatar billede squashguy Nybegynder
26. oktober 2003 - 02:32 #18
ok :)
Avatar billede human Nybegynder
26. oktober 2003 - 02:33 #19
Okay, nu udskriver den både username og krypteret password. Men siger dog stadig at en af tingene ikke eksistere.
Avatar billede human Nybegynder
26. oktober 2003 - 02:36 #20
Fjerner jeg MD5 krypteringen virker det som det skal.

Help me here :o) Point sat op.
Avatar billede human Nybegynder
26. oktober 2003 - 02:42 #21
Ja okay.. Fandt ud af det. Krypteringen er længere end 15 tegn. I min db havde jeg sat varchar(15) ved pass. Det var derfor, doh.

I får lige poing :o)

Smid svar for indstats.
Avatar billede squashguy Nybegynder
26. oktober 2003 - 02:49 #22
jep md5 er 32 tegn lang :p
Avatar billede human Nybegynder
26. oktober 2003 - 02:51 #23
Sudan :o)
Avatar billede human Nybegynder
26. oktober 2003 - 02:54 #24
Hvis du lige vil tage et til. md5 krypteringen er vel case sensetive right?
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