Delphi 7 - Logowanie za pomocą mySQL

0

Witam, chodzi mi o logowanie za pośrednictwem kont założonych na stronie...
Kod procedury logowania którą napisałem (działała przy pierwszym włączeniu ale tylko z jednym kontem)

procedure TForm1.Button1Click(Sender: TObject);
var
login, haslo : string;
begin
 login := Modul.ZTable1.FieldValues['username'];
 haslo := Modul.ZTable1.FieldValues['password'];
 if (Edit1.Text = login) and (Edit2.Text = haslo)
 then
   (Label1.Caption := 'Zostales zalogowany.')
 else
   Label1.Caption := 'Nie udalo sie zalogowac.';
end;

modul - to data module
username i password - rekord w tabeli jos_users w joomli
przy jednym loginie i haśle z bazy danych wyświetla "zostales zalogowany", ale przy innych wyświetla "nie udało się zalogować."
proszę o pomoc

0

Z powyższego kodu wiadomo że... nic nie wiadomo.
ZTable pobiera pewnie wszystko co masz w tabeli a że zaznaczenie jest najprawdopodobniej na pierwszym rekordzie to tylko w tym przypadku się sprawdza.
Zrób to po bożemu, zamiast ZTable użyj ZQuery, pobierz jeden rekord na podstawie loginu (jeżeli istnieje) i dopiero prównuj czy hasło się zgadza.

0

Zrobiłem coś takiego:

procedure TForm1.Button1Click(Sender: TObject);
var
login, haslo: string;
begin
 login := Modul.ZQuery2.FieldValues['username'];
 haslo := Modul.ZQuery2.FieldValues['password'];
 if (Edit1.Text = login) and (Edit2.Text = haslo)
 then (Label1.Caption := 'Zostałeś zalogowany')
 else Label1.Caption := 'Nie udalo sie zalogowac';
end;

i coś takiego:

procedure TForm1.Button1Click(Sender: TObject);
var
login, haslo : string;
begin
 login := Modul.ZQuery2username.Value;
 haslo := Modul.ZQuery2password.Value;
 if (Edit1.Text = login) and (Edit2.Text = haslo)
 then (Label1.Caption := 'Zostałeś zalogowany')
 else Label1.Caption := 'Nie udalo sie zalogowac';
end;

ale w obu przypadkach pozwala na zalogowanie tylko z pierwszego użytkownika w tabeli.

0

Spróbuj tego:

 
 begin
    ZQuery1.SQL.Clear;
    ZQuery1.SQL.Add('SELECT username, password FROM jos_users WHERE username='+chr(39)+eLogin.Text+chr(39)+' AND password='+chr(39)+MaskEdit1.Text+chr(39)+';');
    ZQuery1.Open;
      if ZQuery11.RecordCount>0 then
        begin
          login:=ZQuery1.FieldValues['username'];
          haslo:=ZQuery1.FieldValues['password'];
          showmessage('Zostales zalogowany')
        end
      else
        if ZQuery1.RecordCount=0 then
        showmessage('Nieprawidłowy login lub hasło. Sprawdź poprawność danych')
  end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1