Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Szyfrowanie w md5 z bazą danych
arek50
post 18.11.2006, 00:06:49
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 13.11.2006

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował arek50 18.11.2006, 00:10:45
Go to the top of the page
+Quote Post
Cysiaczek
post 18.11.2006, 00:19:59
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




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.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
lordziqqq
post 18.11.2006, 15:28:20
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 22.06.2006

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.06.2025 - 10:21