Hmm finde den Fehler einfach nicht
-
Also erstmal bin ich nicht sauer wenn mir Fehler erklärt werden dadurch lerne ich doch nur selbst.
Zum zweiten der Login soll sich wiederholen wenn das Passwort oder der B.name falsch sind. Das heisst es geht immer wieder ein Login auf bis das richtige eingegeben wurde. Oder hast du dafür auch noch eine bessere Lösung?
-
Wieso machst du keine while?
while (!Kontrolle.ueberpruefung()) { MessageBox("Sie haben einen falschen Benutzernamen oder ein falsches Passwort eingegeben","Fehler",MB_OK | MB_ICONEXCLAMATION); }
Klein und übersichtlich.
Wobei ich dir als User vermutlich den Hals umdrehen würde, wenn ich meine Versuche nicht aufgeben kann.
Ich vermisse hier eine Abbruchmöglichkeit.
-
Ehrlich gesagt habe ich an ne while gar nicht gedacht
Wieso würdest du mir den Hals umdrehen ich kann doch froh sein das mir jemand hilft und wieso sollte ich dann nicht auch Verbesserungen annehmen. Gerade von dir du hast mir schon so oft geholfen, dass ich glaube wenn du mir was Vvrschlägst das das dann auch wirklich besser ist
-
Achso noch zur Abbruchmöglichkeit momentan ist das alles noch zur Übung , bald soll das ne richtige Server Client Anwendung werden. Wenn du dich zurück einnerst mit Drucken und ODBC das war alle nur Übung für dieses Programm was bald anfängt.
Und wie das Programm und wo das Programm laufen soll ist noch nicht geklärt wenn es auf einem separaten Rechner laufen soll, dann wird das Programm immer laufen da brauch ich das dann nicht. Nur wenn das auf jeden Rechner soll dann schon.
-
Hey, allwissend bin ich auch nicht.
Was ich eben meinte ist folgende Situation:
Du bist mal der Benutzer von deinem Programm:
Du startest das und wirst zum Anmelden aufgefordert.
Du gibst deine Daten ein ... falsch.
Du versuchst es nochmal ... falsch.
Hmm, keine Lust mehr - aber wie kommst du aus der Anmeldung wieder raus, wo deine Daten doch nicht passen und du dich nicht anmelden kannst?
-
Ahso, nagut.
Falls es mal nicht mehr Übung ist: Ein Dialog macht sich da praktisch, weil du in der OnOK die Daten prüfen kannst und nur, wenn die Okay sind auch CDialog::OnOK aufrufst.
Abbrechen geht dann mit dem Abbrechen-Knopf und die aufrufende Funktion kann den Rückgabewert von DoModal nutzen.if (IDOK == dialog.DoModal()) { // Daten waren okay }
..das war die Kurzfassung.
-
Kurz und knackig
-
Ich habe was gemerkt ganz am anfang und ich denke ist nicht korrekt
Silvercreast schrieb:
int Login::ueberpruefung(bool ergebnis) { CString Benutzername = "Sebastian Dors"; CString Passwort = "shuttle"; if(m_Benutzername == Benutzername && m_Passwort == Passwort) { return true; } else { return false; } }
hier dir funktion von type int und sie übergibt false und true zurück.
soll nicht von type Bool sein? geht int mit flase, true zusammen?
-
guter einwand
. Ich versteh deine zweite Frage aber nicht.
Momentan habe ich das Problem das immer eine Entlosschleife entsteht, da er mir den Login Dialog nicht aufrufen will was muss ich dazu machen damit der mir den Dialog aufruft??
-
Zeig mal den Code.
-
Welchen ?? Der mit der If ist genauso übernommen wie du Ihn mir gegeben hast
-
Du müsstest irgendwo zwischen den einzelnen Überprüfungen auch zurückgehen zur Eingabe, sonst testest du immer die selben (falschen) Einträge für Name und Passwort.
-
für solche dialog fragen tue ich immer so.
im hauptdilaog einen knopf einfügen .bei tasten diesen knopf hole ich die eingaben über die passwort mit UpdatData(TRUE).
im knopffunktion überprüfe ich die angaben wenn korrekt lasse ich mein programm weiter arbeiten. wenn nicht ...tue nicht ....meldung ..angabe falsch und bin noch in mein hauptdialog ..kann auch schliessen mit cancel.
-
also hier brauche ich keine schleife
-
CStoll schrieb:
Du müsstest irgendwo zwischen den einzelnen Überprüfungen auch zurückgehen zur Eingabe, sonst testest du immer die selben (falschen) Einträge für Name und Passwort.
Stimmt, wo ist die überhaupt?
-
if(m_Benutzername == Benutzername && m_Passwort == Passwort)
Kannst Du das bitte anständig klammern?
Das sind genau die Dinger die oft genug Probleme machen.Richtig wäre wohl:
if ((m_Benutzername == Benutzername) &&
(m_Passwort == Passwort))