Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Komunikat o błędnym logowaniu
Forum PHP.pl > Forum > Przedszkole
Barcelona
Witam, mam formularz do logowania:

  1. $login = $_POST["login"];
  2. $haslo = $_POST["haslo"];
  3. $adres = $_SESSION["adres"];
  4. if ($_GET["login"]=="koniec") { // wylogowanie
  5. } else if ($login<>"" and $haslo<>"") {
  6. $haslo = md5($haslo);
  7.  
  8. $wynik=mysql_query("SELECT * FROM $mysql_tabela WHERE
  9. login='$login' and haslo='$haslo' and status>'1'");
  10. if (mysql_num_rows($wynik)==1) {
  11. $dane=mysql_fetch_array($wynik);
  12. $_SESSION["zalogowany"]="tak";
  13. $_SESSION["login"]=$dane["login"];
  14. $_SESSION["imie"]=$dane["imie"];
  15. $_SESSION["status"]=$dane["status"];
  16. header('Location: '.$adres);
  17. }
  18.  
  19. }


Kombinuje i nie wiem gdzie wstawić komunikat że logowanie nie powiodło się. Kombinowałem ale nic mi nie wychodziło thumbsdownsmileyanim.gif

Jakieś sugestie ?
ciekawskiii
zalezy z jakiego powodu sie nie powiodło bo warunkow może być wiele, błędne hasło? Za krótkie hasło? Za długie hasło? Brak takiego loginu? Itp...
Barcelona
Ehh, jak zwykle utrudniam sobie życie. Mogłem przecież sprawdzać czy podany login, hasło itd istnieje smile.gif
Gość
dodatkowo MD5 nie jest bezpiecznym sposobem przechowywania haseł, należy stosować rozwiązania z solą, np. phpass który jest obecnie powszechnie używany przez phpbb3, wordpress itd.
kod nie jest także zabezpieczony przed atakami SQL INJECTION
Barcelona
Dla potomnych smile.gif

  1. $login = $_POST["login"];
  2. $haslo = $_POST["haslo"];
  3. $adres = $_SESSION["adres"];
  4.  
  5. if (isset($login) && $login=="") { $blad++;
  6. $komunikat .= "Login nie został podany!<br />";
  7. }
  8. if (isset($login)) {
  9. $wynik=mysql_query("SELECT * FROM logowanie WHERE login='$login'");
  10. if (mysql_num_rows($wynik)==0) { $blad++;
  11. $komunikat .= "Login <b>$login</b> nie widnieje w naszej bazie! <br />";
  12. }
  13. }
  14. if (isset($haslo) && $haslo=="") { $blad++;
  15. $komunikat .= "Hasło nie zostało podane!<br />";
  16. }
  17. if (isset($haslo)) {
  18. $haslo_spr = md5($haslo);
  19. $wynik=mysql_query("SELECT * FROM logowanie WHERE login='$login' AND haslo='$haslo_spr'");
  20. if (mysql_num_rows($wynik)==0) { $blad++;
  21. $komunikat .= "Hasło nie jest prawidłowe! <br />";
  22. }
  23. }
  24. if ($blad>0) {
  25. echo "<div class='error'>".$komunikat."</div><br/>";
  26. }
  27. if ($_GET["login"]=="koniec") { // wylogowanie
  28. } else if ($login<>"" and $haslo<>"") {
  29. $haslo = md5($haslo);
  30.  
  31. $wynik=mysql_query("SELECT * FROM $mysql_tabela WHERE
  32. login='$login' and haslo='$haslo' and status>'1'");
  33. if (mysql_num_rows($wynik)==1) {
  34. $dane=mysql_fetch_array($wynik);
  35. $_SESSION["zalogowany"]="tak";
  36. $_SESSION["login"]=$dane["login"];
  37. $_SESSION["imie"]=$dane["imie"];
  38. $_SESSION["status"]=$dane["status"];
  39. header('Location: '.$adres);
  40. }
  41.  
  42. }


Cytat
dodatkowo MD5 nie jest bezpiecznym sposobem przechowywania haseł, należy stosować rozwiązania z solą, np. phpass który jest obecnie powszechnie używany przez phpbb3, wordpress itd.
kod nie jest także zabezpieczony przed atakami SQL INJECTION


Słuszna uwaga, muszę nad tym posiedzieć
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.