Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Logowanie oparte na sql i md5
Forum PHP.pl > Forum > Przedszkole
Hubi.pl
Witam,
mam taki kod:
  1. <?php
  2.  
  3. include (&#092;"function.php\");
  4. polacz();
  5. ///test danych //////
  6. echo $login; ////////
  7. echo $haslo; ////////
  8. echo '<br>'; ////////
  9. echo '<br>'; ////////
  10. /////////////////////
  11.  
  12. if(!empty($login)) {
  13.  
  14. $query = mysql_query(&#092;"select login from klient where login='$login'\");
  15. $wiersz = mysql_fetch_array($query);
  16. echo $wiersz['login'];
  17. echo '<br>';
  18. if ($login == $wiersz['login']) 
  19. {
  20. $query2 = mysql_query(&#092;"select haslo from klient where login='$login'\");
  21. $wiersz2 = mysql_fetch_array($query2);
  22.  
  23. ///////////TEST//////////////
  24. echo $wiersz2['haslo'];
  25. echo '<br>';
  26. md5(&#092;"$haslo\") == $pass; // kodowanie md5
  27. echo $pass; // nie wyświetla się hasło zakodowane w md5 :(
  28. echo '<br>';
  29. ///////////TEST//////////////
  30.  
  31. if ($pass == $wiersz2['haslo'])
  32. {
  33. echo(&#092;"zalogowałeś się!\");
  34. }
  35. else
  36. {
  37. echo(&#092;"podałeś złe hasło!\");
  38. }
  39. }
  40. else
  41. {
  42. echo(&#092;"taki login nie istnieje!\");
  43. }
  44.  
  45. }
  46. else
  47. {
  48. <form action=\"\" method=\"post\">
  49.  Login: <input type=\"text\" name=\"login\"/><br/>
  50.  Hasło: <input type=\"password\" name=\"haslo\"/><br/>
  51.  Login: <input type=\"submit\" name=\"loginGo\" value=\"Zaloguj\"/><br/>
  52. </form>';
  53. }
  54.  
  55. ?>


Problem polega na tym, że hasło z formularza nie chce mi się zakodować w md5 żeby mogło zostać zweryfikowane z hasłem z bazy sql.

Co źle zrobiłem?

Pozdrawiam winksmiley.jpg
Jabol
Troszkę zmodyfikowałem - powinno działać.
  1. <?php
  2.  
  3. include (&#092;"function.php\");
  4. polacz();
  5. ///test danych //////
  6. echo $login; ////////
  7. echo $haslo; ////////
  8. echo '<br>'; ////////
  9. echo '<br>'; ////////
  10. /////////////////////
  11.  
  12. if(!isset($login)) { // XXX: isset zamiast empty
  13. $query = mysql_query(&#092;"select login, haslo from klient where login='$login'\");
  14. if (mysql_num_rows($query))
  15. {
  16. $wiersz = mysql_fetch_assoc($query);
  17. ///////////TEST//////////////
  18. echo $wiersz['login'];
  19. echo '<br>';
  20. echo $wiersz['haslo'];
  21. echo '<br>';
  22. $pass=md5($haslo); // kodowanie md5 XXX: Tutaj troszkę zmieniłem - coś było namieszane
  23. echo $pass; // nie wyświetla się hasło zakodowane w md5 :(
  24. echo '<br>';
  25. ///////////TEST//////////////
  26.  
  27. if ($pass == $wiersz['haslo'])
  28. {
  29. echo(&#092;"zalogowałeś się!\");
  30. }
  31. else
  32. {
  33. echo(&#092;"podałeś złe hasło!\");
  34. }
  35. }
  36. else
  37. {
  38. echo(&#092;"taki login nie istnieje!\");
  39. }
  40. }
  41. else
  42. {
  43. <form action=\"\" method=\"post\">
  44.  Login: <input type=\"text\" name=\"login\"/><br/>
  45.  Hasło: <input type=\"password\" name=\"haslo\"/><br/>
  46.  Login: <input type=\"submit\" name=\"loginGo\" value=\"Zaloguj\"/><br/>
  47. </form>';
  48. }
  49.  
  50. ?>
Hubi.pl
teraz jest dobrze i działa.. winksmiley.jpg
ale... coś ten md5 jest jeszcze nie tak:
Kod
bvb
5d35ee739e0ef7fed39be900453f89     //hasło za bazy
5d35ee739e0ef7fed39be900453f8957 // hasło z formularza
podałeś złe hasło!


Dlaczego one się różnią?

pzdr.
aleksander
bo w bazie masz pole (VAR)CHAR na 30 znakow a mf5 daje 32 znaki. zwieksz pole w bazie do 32 znakow i git:)


BTW moj 500tny post winksmiley.jpg
Hubi.pl
ooo dzięki faktycznie miałem 30 znaków biggrin.gif

ale zrobiłem:
  1. <?
  2. $pass = md5(&#092;"$haslo\"); // kodowanie md5
  3. $passw = substr($pass,0,30);
  4. ?>

i też pomogło smile.gif

pzdr.
Slump
Bo przycina wszystko co jest powyzej 30 znaku ale lepiej zmien pole w db a to wywal bedzie pewniej smile.gif

I ps polecam zmiane na sh1 ale to juz inna sprawa.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.