AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Passwortabfrage mit Datenbank abgleichen
Thema durchsuchen
Ansicht
Themen-Optionen

Passwortabfrage mit Datenbank abgleichen

Ein Thema von Thieon · begonnen am 18. Mär 2016 · letzter Beitrag vom 22. Mär 2016
Antwort Antwort
Seite 1 von 3  1 23      
Thieon

Registriert seit: 18. Mär 2016
9 Beiträge
 
#1

Passwortabfrage mit Datenbank abgleichen

  Alt 18. Mär 2016, 21:33
Datenbank: ?? • Version: ?? • Zugriff über: ??
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:
//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;
Benutzte Objekte:
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é
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Passwortabfrage mit Datenbank abgleichen

  Alt 18. Mär 2016, 21:44
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:
SELECT *
FROM tblusers
WHERE Passwort='blablabla' AND username='username'
Dann würde ich nur mit SQLQuery.FetchedRows auf <> 0 prüfen.

Alternativ kannst du auch in der Query

Code:
SELECT count(id) As RecFound
FROM tblusers
WHERE ....
Die Anzahl der gefunden Übereinstimmungen berechnen und mittels FieldByName('RecFound').AsInteger <> 0 prüfen.

Schau dir mal die Einsteiger-Tutorials zu SQL und den DB-Komponenten an.
Michael Kübler
  Mit Zitat antworten Zitat
Thieon

Registriert seit: 18. Mär 2016
9 Beiträge
 
#3

AW: Passwortabfrage mit Datenbank abgleichen

  Alt 18. Mär 2016, 22:15
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. ...



Code:
SELECT *
FROM tblusers
WHERE Passwort='blablabla' AND username='username'
Dann würde ich nur mit SQLQuery.FetchedRows auf <> 0 prüfen.

Alternativ kannst du auch in der Query

Code:
SELECT count(id) As RecFound
FROM tblusers
WHERE ....
Die Anzahl der gefunden Übereinstimmungen berechnen und mittels FieldByName('RecFound').AsInteger <> 0 prüfen.
Ach ja das DGrid und den Navigator brauche ich nicht für die Passwortabfrage aber die brauche ich doch zum pflegen der Datenbank...

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

Danke

René
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

AW: Passwortabfrage mit Datenbank abgleichen

  Alt 18. Mär 2016, 22:46
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;
  Mit Zitat antworten Zitat
Thieon

Registriert seit: 18. Mär 2016
9 Beiträge
 
#5

AW: Passwortabfrage mit Datenbank abgleichen

  Alt 19. Mär 2016, 05:50
Tausend Dank...

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;
Genau das hat mein Problem gelöst... Ich verstehe zwar noch nicht ganz, warum die Filterfunktion ausgeschaltet sein muss und danach wieder eingeschaltet werden muss, aber ich nehme es erstmal so hin.

MfG

René
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#6

AW: Passwortabfrage mit Datenbank abgleichen

  Alt 19. Mär 2016, 07:51
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.
Gruß, Jo

Geändert von jobo (19. Mär 2016 um 08:38 Uhr)
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#7

AW: Passwortabfrage mit Datenbank abgleichen

  Alt 19. Mär 2016, 08:08
Ich verstehe zwar noch nicht ganz, warum die Filterfunktion ausgeschaltet sein muss und danach wieder eingeschaltet werden muss, aber ich nehme es erstmal so hin.
Probiere es aus, ob es ohne das Aus- und Einschalten geht. Wenn ja, dann lass es weg, wenn nein, dann schau, wie sich das Verhalten verändert.

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.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Passwortabfrage mit Datenbank abgleichen

  Alt 19. Mär 2016, 08:18
@nahpets

Dein Vergleich mit dem Forum ist das was @jobo mit Mittelschicht meinte.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#9

AW: Passwortabfrage mit Datenbank abgleichen

  Alt 19. Mär 2016, 08:37
@nahpets

Dein Vergleich mit dem Forum ist das was @jobo mit Mittelschicht meinte.
Jain, die Form der Anwendung schon, wäre dann aber kein Fatclient.

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
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#10

AW: Passwortabfrage mit Datenbank abgleichen

  Alt 19. Mär 2016, 08:41
@nahpets

Dein Vergleich mit dem Forum ist das was @jobo mit Mittelschicht meinte.

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.
Gruß, Jo
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz