![]() |
Datenbank: ?? • Version: ?? • Zugriff über: ??
Passwortabfrage mit Datenbank abgleichen
Moin zusammen,
ich bin kompletter Neuling, was das Programmieren angeht und ich versuche mich schon seit zwei Tagen an das Problem meine Passwortabfrage am laufen zu bekommen. Jetzt habe ich es soweit am laufen, dass er die Eingabe in den Feldern Ben (Benutzername) und Code (Kennwort) mit der Datenbank abgleicht. Jedoch Vergleicht das Programm die Einträge mit der ersten Zeile in der Datenbank und wenn ich einen anderen Benutzernamen wähle, dann passiert nichts. Meine Prozedur sieht wie folgt aus:
Code:
Benutzte Objekte:
//LoginButton = true Weiterleitung zum MainForm und schließen LoginFenster
procedure TForm1.BitBtn1Click(Sender: TObject); begin if (Benutzer.text = form3.Dbf1.FieldByName('Ben').AsString) and (Code.Text = form3.Dbf1.FieldByName('Code').AsString) then begin form2.show; form1.close; end end; TLabeledEdit für Benutzername und Kennwort TBitBtn für den Login Button Für die Datenbank habe ich folgende Objekte benutzt: DGrid DBNavigator DataSource Dbf Ach ja kann man den FilePath automatisch setzten, so dass die Datenbank immer automatisch gefunden wird (anhand des TableName)? Ich hoffe meine Angaben sind ausreichend... Vielen Dank im Voraus MfG René |
AW: Passwortabfrage mit Datenbank abgleichen
Also...
Filepath und alle anderen Einstellungen kannst du zum Beispiel beim Programmstart im Event "OnFormCreate" zuweisen. Für deine Passwortabfrage brauchst du kein DBGrid und kein Navigator. Nehme eine SQL-Query Komponente und prüfe so (Pseudocode)
Code:
Dann würde ich nur mit SQLQuery.FetchedRows auf <> 0 prüfen.
SELECT *
FROM tblusers WHERE Passwort='blablabla' AND username='username' Alternativ kannst du auch in der Query
Code:
Die Anzahl der gefunden Übereinstimmungen berechnen und mittels FieldByName('RecFound').AsInteger <> 0 prüfen.
SELECT count(id) As RecFound
FROM tblusers WHERE .... Schau dir mal die Einsteiger-Tutorials zu SQL und den DB-Komponenten an. |
AW: Passwortabfrage mit Datenbank abgleichen
Erstmal Danke für deine schnelle Antwort.
Irgendwie kann ich damit nichts anfangen... Ich habe versucht dein Beispiel einzubinden, jedoch klappt das nicht... Ich nutze auch keine SQL Datenbank ich vermute mal das es damit zusammenhängt. Wenn ich ein SQLQuery einbinde dann kann ich dieses Objekt nicht mit meiner Datenbank verbinden. ... Zitat:
Und noch eine Anmerkung, die ich vergessen habe... Ich nutze kein Delphi sondern Lazarus, aber ich habe mir sagen lassen, dass zwischen Lazarus und Delphi kein Unterschied besteht außer die Kosten halt :lol: Danke René |
AW: Passwortabfrage mit Datenbank abgleichen
Da mir nicht klar ist, was für eine Datenbank Du nutzt, versuch es mal so in der Form (nur hingedaddelt und nicht getestet):
Delphi-Quellcode:
//LoginButton = true Weiterleitung zum MainForm und schließen LoginFenster
procedure TForm1.BitBtn1Click(Sender: TObject); begin dbf1.Filtered := false; dbf1.Filter := Format('Ben = %s and Code = %s',[QuotedStr(Benutzer.text),QuotedStr(Code.Text)]); dbf1.Filtered := true; dbf1.First; if not dbf1.EoF then begin form2.show; form1.close; end; dbf1.Filtered := false; end; |
AW: Passwortabfrage mit Datenbank abgleichen
Tausend Dank...:thumb:
Zitat:
MfG René |
AW: Passwortabfrage mit Datenbank abgleichen
Zunächst mal:
Normalerweise meldet man sich an der DB mit User/PW an. Dein Verfahren, auf einer geöffneten DB nach passenden Usern zu suchen erinnert eher an Mittelschicht Anwendungen, klassische Webserver, wie passt das zu einem Fatclient? Für den Fall, dass dbf tatsächlich dbf ist und die "Datenbank" einfach so im Zugriff liegt, wofür brauchst Du Nutzer und Passwort, wenn sowieso jeder die "Datenbank" öffnen kann? Die Filtered Sache: Das Attribut gibt den Zustand an, bzw. ändert ihn bei Zuweisung. Der Filter(text) selbst ist natürlich nur wirksam, wenn Filtered True ist. Einen aktiven Filter ändert man nicht. Man schaltet auch den Motor aus, bevor man die Zündkerzem wechselt (und dann erst wieder an) Ach und wie soll ein System anhand eines Tabellennamen wissen, wo die zugehörige DB liegt ohne in die DB reinzuschauen? Das geht nur wenn Du es definierst. TABA liegt auf C:\meinedb.dbf, TABB lieft auf c:\backup\meinedb.dbf usw. Alternativ kannst Du nach DBF suchen und darin nach dem gewünschten Tabellennamen schauen. |
AW: Passwortabfrage mit Datenbank abgleichen
Zitat:
Was passierte denn, wenn das erste Ausschalten entfällt, aber bereits ein Filter gesetzt ist? Wird der Filter dann bereits bei der Zuweisung der "Filtertextes" entsprechend verändert? Oder ist das Einschalten dann erforderlich? Lässt sich ein veränderter Filter einschalten, wenn bereits ein anderer Filter eingeschaltet ist? Was ist im DBGrid zu sehen, wenn ein Filter eingeschaltet ist? Kann man dann noch per Navigator durch die Daten scrollen? @Jobo: Ich hab' auch eine "Datenbank", in der ich Benutzernamen und Passwörter für die verschiedenen "Systeme", auf die ich so im Laufe der Zeit zugreifen muss, verwalte. Wenn ich halt mal wieder eine Anmeldung vergessen habe, so brauche ich nur Benutzername und Passwort der Anwendung, mit der ich die Benutzernamen und Passwörter verwalte und kann dann dort nachschauen, welchen Benutzernamen und welches Passwort ich gerade benötige. Prinzipiell könnte es sich hier also schon um eine sinnvolle Anwendung halten. Andererseits könnte man auf diese Weise aber auch eine Zugriffsverwaltung (mit Berechtigungskonzept) ähnlich verwalten. Die Anwendung meldet sich an der Datenbank an, aber diese Anmeldung ist unabhängig davon, ob der Nutzer der Anwendung dann auch über die Anwendung Zugriff auf die Datenbank bekommt. Wenn ich mich hier im Forum anmelde, dann muss ja auch "irgendwer" in 'ner Datenbank nachschauen, ob ich zugriffsberechtigt bin und wenn ja, mit welchen Rechten. Aber Benutzername und Passwort, für die hinter dem Forum liegenden Datenbank, sind mir vollkommen unbekannt. Und bei der Registrierung im Forum wird garantiert kein Benutzer (mit meinen Anmeldedaten) in der Datenbank anlegt. |
AW: Passwortabfrage mit Datenbank abgleichen
@nahpets
Dein Vergleich mit dem Forum ist das was @jobo mit Mittelschicht meinte. ;) |
AW: Passwortabfrage mit Datenbank abgleichen
Zitat:
Die Anwendung hier könnte quasi die Grundlage liefern, damit die Mittelschicht die Möglichkeit bekommt, Benutzernamen und Passwörter abzugleichen. Die Mittelschicht muss nicht unbedingt selbst eine Option enthalten, mit deren Hilfe sie sich quasi selbst verwaltet. Hier dürfte es sich eher um eine Verwaltung für Benutzernamen und Passwörter handeln, die halt zufällig die Daten in irgendeiner Tabelle irgendeiner Datenbank speichert. Aber eigentlich egal: Die Informationslage ist wohl nicht aussagekräftig genug, um hier auf eine konkrete Anwendung schließen zu können ;-) |
AW: Passwortabfrage mit Datenbank abgleichen
Zitat:
Ja, so meinte ich das. Es kann natürlich sein, dass der TE eine Passwortverwaltung schreibt. Da kann man sich immer noch fragen, ob es Sinn macht in der Form. Ich vermute eher, dass gemäß Selbstauskunft des TE hier noch einige Verständnisschwierigkeiten bestehen. Aber das kann er ja selbst fragen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz