![]() |
Datenbank: Mysql • Version: 5.x • Zugriff über: C-Api
MYSQL Login Script
Hi,
Ich versuche ein Loginscript zu realisieren, es gibt 2 input felder, eins heißt username das andere Password und dann noch einen Login button, nun hab ich in der datenbank die spalten username und password, diese möchte ich mit der eingabe vergleichen und wenns ne übereinstimmung gibt will ich erstmal nur ne showmessage anzeigen lassen, dass die daten korrekt sind, ich komm leider nicht wirklich weiter, hier ist mal mein ansatz:
Delphi-Quellcode:
Con := mysql_init(nil);
if Assigned(Con) then try if Assigned(mysql_real_connect(Con, host, user, pass, db, 3306, nil, 0)) then begin query := 'SELECT username,password FROM user WHERE username = '+username.Text+ 'AND password = '+password.text; mysql_real_query(Con,PChar(query), Length(query)); if Assigned(Res) then begin Res := mysql_store_result(Con); if (mysql_num_rows(Res) =1) then showmessage('Daten Korrekt'); if (mysql_num_rows(Res) <>1) then showmessage('Daten Falsch'); end; end finally mysql_close(Con); end; |
Re: MYSQL Login Script
Hi!
Klappt dein Code gar nicht (Fehlermeldungen?) oder bekommst du nur nicht, was du haben willst? Vllt. ist password ein Problem, weil es ein Schlüsselwort ist? Grüße, Frederic |
Re: MYSQL Login Script
das wäre ne idee, ich teste es mal eben aus und edite dann
//Edit nein geht auch nicht, wenn ich den namen änder, delphi spuckt ne exception aus, in der aber nicht wirklich was steht, sondern einfach nur adress violation libmysql.dll usw |
Re: MYSQL Login Script
Hai 1carter1,
einen Fehler sehe ich schon einmal:
Delphi-Quellcode:
Hier wird AND password direkt an den username gehängt. Ich mache solche Konstruktionen immer über die
query := 'SELECT username,password FROM user WHERE username = '+username.Text+ 'AND password = '+password.text;
![]()
Delphi-Quellcode:
Wenn Du den String der SQL-Anweisung jetzt noch als const deklarierst ist der eigentliche Sourcecode noch einfach zu lesen.
query := Format('SELECT username,password FROM user WHERE username = %s AND password = %s',[username.Text, password.text]);
Delphi-Quellcode:
const
UserQuery : string = 'SELECT username,password FROM user WHERE username = %s AND password = %s' begin . . query := FORMAT(UserQuery[username.Text, password.text]); . . |
Re: MYSQL Login Script
Siehe dazu auch:
![]() Wir lernen daraus: NIEMALS einen SQL-String selber zusammenbauen. Für so etwas gibt es Parameter. Bei Deinem Code muss man als Benutzernamen nur
Code:
eingeben und Deine Datenbank ist am allerwertesten.
nix'; DROP TABLE user; --
|
Re: MYSQL Login Script
Zitat:
Aber du hast Recht, mit Parametern ist es schöner. |
Re: MYSQL Login Script
Ist die Verwendung von Parametern bei seiner LIB denn möglich?
|
Re: MYSQL Login Script
Zitat:
|
Re: MYSQL Login Script
@1carter1:
Hast Du die Datei libmysql.dll in Deinem Windows/System32 oder in Deinem Programmverzeichnis liegen ? |
Re: MYSQL Login Script
es ist total irrelevant wo die datei liegt, entweder im sys32 oder im programmordner, habs auch schon lange hinbekommen, der query muss so aussehen:
query := 'SELECT username,password FROM user WHERE username = "'+username.Text+ '" AND password = "'+password.text+'"'; mfg carTer |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:17 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 by Thomas Breitkreuz