Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Problem z zapytaniem ?
Forum PHP.pl > Forum > Przedszkole
Lampek
Witam
Mam problem gdy rejestruje użytkowników w bazie danych wszystko jest okej dane dodają sie do bazy bez problemu, natomiast jak próbuje przeprowadzić logowanie pojawia się problem. Myślałem że jest jakiś problem kodem PHP ale raczej nie i chyba coś nie tak jest z zapytanie tylko nie moge dość do tego co jest nie halo. Hasło jest przekazywane po rejestracji w formie sha1('haslo') i teraz spróbowałem wpisać zapytanie z funkcji logowania dotyczące samego hasła w phpmyadmin i wywala mi wyniki 0 rekordów, ale jak przeglądam bazę to hasła tam są
Tak wygląda rejestracja i logowania
  1. function rejestruj($nazwa_uz, $email, $haslo, $date) {
  2.  
  3. $lacz = lacz_bd();
  4. $lacz -> query("SET NAMES 'utf8'");
  5. // sprawdzenie, czy nazwa użytkownika nie powtarza się
  6. $wynik = $lacz->query("select * from uzytkownik where nazwa_uz='$nazwa_uz'");
  7. if (!$wynik) {
  8. throw new Exception('Wykonanie zapytania nie powiodlo sie.');
  9. }
  10.  
  11. if ($wynik->num_rows>0) {
  12. throw new Exception('Nazwa uzytkownika zajeta — prosze wrócic i wybrac inna.');
  13. }
  14. $lacz -> query("SET NAMES 'utf8'");
  15. // jeżeli wszystko w porzšdku, umieszczenie w bazie danych
  16. $wynik = $lacz->query("insert into uzytkownik values
  17. ('$nazwa_uz', sha1('$haslo'), '$email', '0' , '$date')");
  18. if (!$wynik) {
  19. throw new Exception('Rejestracja w bazie danych niemozliwa — prosze spróbowac pózniej.');
  20. }
  21.  
  22. return true;
  23.  
  24. function loguj($nazwa_uz, $haslo)
  25. {
  26. $lacz = lacz_bd();
  27. $wynik = $lacz->query("select * from uzytkownik
  28. where nazwa_uz='" . $nazwa_uz . "'
  29. and haslo='" .$haslo."'");
  30. if (!$wynik->num_rows)
  31. throw new Exception('Logowanie nie powiodlo sie. Sprawdz login i haslo');
  32. if ($wynik->num_rows==1)
  33. return true;
  34. }
  35. }
CuteOne
1. Czy przed wysłaniem $haslo do zapytania hashowałej je sha1() ?
2. Ustaw kolumnę haslo na VARCHAR(60) - nie pamiętam ile miejsca zajmuje hash sha1. Wtedy utwórz nowe konto i spróbuj się zalogować
Lampek
Dalej to samo rejestraca działa poprawnie natomiast po wpisaniu w phpmyadmin zapytania SELECT * FROM `uzytkownik` WHERE haslo = sha1(haslo) wyrzuca zero rekordów. Zmieniłem na wszelki wypadek haslo na VARCHAR(100). Głupota nie boli nie dodałem sha1 do zmiennej $haslo w funkcji pogowania.
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.