Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z zapytaniem
#1
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
Kod PHP:
function rejestruj($nazwa_uz$email$haslo$date) {

  
$lacz lacz_bd();
$lacz -> query("SET NAMES 'utf8'");
  
// sprawdzenie, czy nazwa u¿ytkownika nie powtarza siê
  
$wynik $lacz->query("select * from uzytkownik where nazwa_uz='$nazwa_uz'");
  if (!
$wynik) {
     throw new 
Exception('Wykonanie zapytania nie powiodlo sie.');
  }

  if (
$wynik->num_rows>0) {
     throw new 
Exception('Nazwa uzytkownika zajeta — prosze wrócic i wybrac inna.');
  }
$lacz -> query("SET NAMES 'utf8'");
  
// je¿eli wszystko w porz¹dku, umieszczenie w bazie danych
  
$wynik $lacz->query("insert into uzytkownik values 
                       ('
$nazwa_uz', sha1('$haslo'), '$email', '0' , '$date')");
  if (!
$wynik) {
    throw new 
Exception('Rejestracja w bazie danych niemozliwa — prosze spróbowac pózniej.');
  }

  return 
true;

function 
loguj($nazwa_uz$haslo)
{
  
$lacz lacz_bd();
  
$wynik $lacz->query("select * from uzytkownik
                         where nazwa_uz='" 
$nazwa_uz "'
                         and haslo='" 
.$haslo."'");
  if (!
$wynik->num_rows)
     throw new 
Exception('Logowanie nie powiodlo sie. Sprawdz login i haslo');
  if (
$wynik->num_rows==1
        return 
true;
}
}
Pokolorowane w 0.081 sekundużywając GeSHi 1.0.8.6 
Odpowiedz
#2
1) Kolego ale kto ci tu pomorze skoro ty dajesz wycinki kodu które nic nie mówią.
rejestrujesz usera z sha1 a potem logujesz bez sha1. Pewnie przekazujesz do funkcji już zakodowane hasło, ale skąd my to mamy wiedzieć...

2) Poza tym zakładasz kolejny wątek na ten sam kod. Źle.
3) "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." - znajdź tutaj błędy...
Odpowiedz
#3
1. Pokaż jak wywołujesz funkcję loguj()
2. Wyjątki do niepoprawnego hasła? Zły pomysł.
Dobre samopoczucie w tym tygodniu sponsoruje cytat:
Cytat:Mogę tylko tylko na prawo i lewo ale na środek nie mogę.
Odpowiedz


Skocz do:


Użytkownicy przeglądający ten wątek:
Sponsorzy i przyjaciele
SeoHost.pl