Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Login mit verschiedenen FORMS (https://www.delphipraxis.net/198964-login-mit-verschiedenen-forms.html)

Amenovis 14. Dez 2018 19:51

Datenbank: sqlite • Version: 3 • Zugriff über: Zeos

Login mit verschiedenen FORMS
 
Also ich habe mal ein simple Login Form die auch wunderbar funktioniert

Dazu habe ich eine Tabelle mit 3 Spalten

USER....PASSWORD....SECTION

das loginscript sieht bis jetzt so aus:

Delphi-Quellcode:
begin
  QUery1.SQL.Clear;
  Query1.SQL.Text:='Select * From USER where user='''+Edit1.Text+''' and password='''+Edit2.Text+'''';
  Query1.Open;
  if not Query1.Eof then begin
      Form1.Hide;
      Form2.Showmodal;
  end else
     ShowMessage('Wrong User or Password!')
  end;
Nun hätte ich gern die Möglichkeit den dritten Wert zu nutzen um dem Programm zu sagen welches Fenster er öffnen soll.... Also verschachtelte IF Funktion....

Delphi-Quellcode:
begin
  QUery1.SQL.Clear;
  Query1.SQL.Text:='Select * From USER where user='''+Edit1.Text+''' and password='''+Edit2.Text+'''';
  Query1.Open;
  if not Query1.Eof then begin
      IF QUERY1 SECTION = 1 THEN BEGIN
      Form2.Showmodal;
      end;
      IF QUERY1 SECTION = 2 THEN BEGIN
      Form3.Showmodal;
      end;
  end else
     ShowMessage('Wrong User or Password!')
  end;
WIe stelle ich das an den Wert der SECTION auszulesen und die FORM zu zuweisen ?

LG Timo

scrat1979 14. Dez 2018 20:56

AW: Login mit verschiedenen FORMS
 
Delphi-Quellcode:
Query1.FieldByName(„SECTION“).AsInteger

Amenovis 14. Dez 2018 20:59

AW: Login mit verschiedenen FORMS
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  QUery1.SQL.Clear;
  Query1.SQL.Text:='Select * From USER where user='''+Edit1.Text+''' and password='''+Edit2.Text+'''';
  Query1.Open;
  if not Query1.Eof then begin
      if Query1.FieldByName('SECTION').AsString = '1' then begin
      Form1.Hide;
      Form2.Showmodal;
      end;
      if Query1.FieldByName('SECTION').AsString = '2' then begin
      Form1.Hide;
      Form3.Showmodal;
      end;
  end else
     ShowMessage('Wrong User or Password!')
  end;

Klappt DANKEEEEEEEEEEEEEEEEEEE hatte es so ähnlich da war sicher wieder der Riesen Baum der den Wald verdeckt !!


lg

Timo

scrat1979 14. Dez 2018 21:07

AW: Login mit verschiedenen FORMS
 
Zitat:

Zitat von Amenovis (Beitrag 1420904)
„SECTION“ <--- mit 'section' hatte ich es versucht wie bekomme ich den die „“ hin und was bewirken diese ?

und ich versuch es gleich danke dafür!

lg

Timo

So wie Du es gemacht hast ist es richtig, ich bekomme die einfache Anführungszeichen mit dem Handy leider gerade nicht hin, da sie automatisch umgewandelt werden :)

Delphi-Quellcode:
FieldByName('SECTION').AsInteger
Jetzt ging es... der Code ist jedenfalls korrekt.

Amenovis 14. Dez 2018 21:11

AW: Login mit verschiedenen FORMS
 
ja gesehen da war bei mir sicher wieder ein mini Fehler drin ... das sind die schlimmsten die finde ich nie

lg

Timo

scrat1979 14. Dez 2018 21:15

AW: Login mit verschiedenen FORMS
 
Super!

Und der übliche Komentar :) Sieh‘ Dir mal SQL-Parameter und deren Vorteile an.

Amenovis 14. Dez 2018 21:17

AW: Login mit verschiedenen FORMS
 
ja da gibt es einige die ich jetzt schon liebe sum() zb muss mir mal unbedingt eine liste mit allem besorgen was da so gängig ist mit ultra einfach beispielen für innerlich plonde wie mich :P :P :P

skoschke 16. Dez 2018 08:49

AW: Login mit verschiedenen FORMS
 
Man kann auch doppelte Anführungszeichen verwenden:

'Select * From USER where user= " '+Edit1.Text+' " and password= " '+Edit2.Text+' " ';

Ciao
Stefan

Schokohase 16. Dez 2018 08:56

AW: Login mit verschiedenen FORMS
 
Man kann auch die Anführungszeichen komplett entsorgen und mit Parametern arbeiten.
Delphi-Quellcode:
QUery1.SQL.Clear;
Query1.SQL.Text:='Select * From USER where user=:user and password=:pass';
Query1.ParamByName('user').AsString := Edit1.Text;
Query1.ParamByName('pass').AsString := Edit2.Text;
Query1.Open;
... allerdings ist es sehr fahrlässig die Kennwörter im Klartext in der Datenbank zu speichern. Dort sollten sich nur Bei Google suchenSalted Hashs befinden.

haentschman 16. Dez 2018 09:59

AW: Login mit verschiedenen FORMS
 
Zitat:

Man kann auch die Anführungszeichen komplett entsorgen
...nicht KANN sondern MUSS. :warn:
siehe: https://de.wikipedia.org/wiki/SQL-Injection

PS:
Delphi-Quellcode:
QUery1.SQL.Clear;
vor
Delphi-Quellcode:
Query.SQL.Text
ist nicht nötig weil SQL.Text das sowieso macht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:35 Uhr.
Seite 1 von 2  1 2      

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