Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Szyfrowanie w md5 z bazą danych
Forum PHP.pl > Forum > PHP
arek50
Próbuję napisać plik z szyfrowaniem w md5, gdzie hasła i inne dane są w bazie mysql. Bazę mam, formularz klogowania dla użytkownika jest. Mam problem z szyfrowaniem w php.
Baza ma następujące kolumny: id, login, haslo w md5, nazwisko i prawa (prawa dostępu do stron).

Napisałem taki kod, ale są w nim błędy. Proszę o pomoc. Napewno jest tu problem z szyfrowaniem.

  1. <?php
  2. $login=$_POST[login];
  3. $hasla=$_POST[haslo];
  4. $haslo=md5($hasla);
  5. if (sprawdz($_POST[login],$_POST[haslo]))
  6. {
  7.  // logowanie poprawne – rozpocznij sesję
  8. } else {
  9. // błąd
  10. }
  11. $nazwisko = ''; 
  12. $prawa = 0;
  13. function sprawdz($login, $haslo) {
  14. global $nazwisko, $prawa;
  15. mysql_connect(localhost, "root", "krasnal");  // ustawienie bazy
  16. mysql_select_db('uzytkownicy') or die ("bez bazy"); // tu jest jeszce ok
  17. $result = mysql_query('SELECT nazwisko, prawa FROM uzytkownicy WHERE login="$login" AND haslo=md5("$haslo")') or die ("Zapytanie zakończone niepowodzeniem");
  18. while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
  19. $nazwisko = $row[0]; 
  20. $prawa = $row[1];
  21. }
  22.  
  23.  
  24. session_register('s_autoryzacja');
  25. session_register('s_nazwisko');
  26. session_register('s_prawa');
  27. $s_autoryzacja = true; 
  28. $s_nazwisko = $nazwisko;
  29. $s_prawa = $prawa;
  30.  
  31. $wymagane_prawa = 2; // autoryzacja praw
  32. if (session_is_registered('s_autoryzacja')) {
  33. if ($s_prawa < $wymagane_prawa) {
  34. echo 'Brak uprawnien'; 
  35. }
  36. } else { 
  37. print "<p>Witaj $login</p>";
  38. print "<p>Twoje prawa dostępu wynoszą $s_prawa; , więc mogę się z tobą przywitać! </p>";
  39. print "<hr /><a href="$_SERVER[PHP_SELF]">Cofnij</a>"; 
  40. } 
  41.  
  42. }
  43. ?>
Cysiaczek
Jak wygląda Twoja baza danych? Czy pole z hasłem to 32 znakowy VARCHAR? Jeśi nie, to zmień na taki.

Jaki błędy konkretnie? Napisz coś więcej, pokaż komunikat błędu etc,

Pozdrawiam.
lordziqqq
zmień :
  1. <?php
  2. $result = mysql_query('SELECT nazwisko, prawa FROM uzytkownicy WHERE login="$login" AND haslo=md5("$haslo")') or die ("Zapytanie zakończone niepowodzeniem");
  3. ?>


na :

  1. <?php
  2. $result = mysql_query('SELECT nazwisko, prawa FROM uzytkownicy WHERE login="'.$login.'" AND haslo=md5("'.$haslo.'")') or die ("Zapytanie zakończone niepowodzeniem");
  3. ?>
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.