kickerxy123
Erfahrenes Mitglied
Hallo, ich bins mal wieder 
Also:
Ich verwende XP Home, SP2
Eclipse
QT4.0.0.1
mein Problem:
der user soll sich einloggen, seine eingegebenen Daten werden mit denen aus einer datei verglichen, falls eine Übereinstimmung erfolgt ist, wird ein neues Fenster geöffnet.
//etwas verkürtzt und auf das wesentliche beschränkt:
Bitte nicht auf Syntax o.ä. achten, wie gesagt, ist gekürtzt(kann sein, dass ne klammer fehlt)
beim kompilieren (Mingw) gibt es keine Fehler oder Warnungen.
Bis gestern gings auch noch, ich weiß nicht was ich hier so verändert habe, dass es nicht mehr geht
(er öffnet nicht mehr "zed" und trägt auch kein cur_user ein).
Ich hoffe ihr könnt mir helfen
#edit: Ausgangsdateien:
cur_user.dll: Leer oder wird gelöscht (ios::trunc)
system.dll:

Also:
Ich verwende XP Home, SP2
Eclipse
QT4.0.0.1
mein Problem:
der user soll sich einloggen, seine eingegebenen Daten werden mit denen aus einer datei verglichen, falls eine Übereinstimmung erfolgt ist, wird ein neues Fenster geöffnet.
//etwas verkürtzt und auf das wesentliche beschränkt:
Code:
//Alles richttig included, daran liegt es nicht!
//...
void scc::on_login_clicked(){ //Login-Button
ui.error->setText("");
login_user = ui.name ->text();
if(krux_pw!="///"){ //wenn eine "Sternchen-"Eingabe erfolgt ist
login_pw = krux_pw;//nimmt er das unverschlüsselte PW
}
else{ //sonst DIREKT vom Eingabefeld
login_pw = ui.pw ->text();
}
unsigned short max = 256;
string name[max];
string pass[max];
ban=0;
ifstream akt_abfrage("C:/system.dll");
for(unsigned short u=0;u<max;u++){
getline(akt_abfrage,name[u],'\n');
if(name[u]==""){ //Falls Leerzeile, dann folgen die PWs
for(unsigned short z=0;z<max;z++){
getline(akt_abfrage,pass[z],'\n');
}
}
}//Konvertierung von QString nach String:
QByteArray ba = login_user.toLatin1();
const char *user = ba.data();
QByteArray bat = login_pw.toLatin1();
const char *pw = bat.data();
for(unsigned short i=0;i<max;i++){
if(user==name[i]){
if(pw==pass[i]){
if(ban<100){
if(user!=""){
//user ist angeblich immer !="",warum auch immer?!
//Access Allowed!
//Aufruf einer neuen Klasse
ofstream m("C:/cur_user.dll",ios::trunc);
m << user;
if(ui.login_checkbox->isChecked()){
m << '\n' << pw;
}
if(ui.autom->isChecked()){
m << '\n' << "true";
}
m.close();
Zed zed;
zed.exec();
//Wie kann ich an dieser Stelle das aktuelle Fenster schließen oder hiden
}
}
}else{
ui.error->setText("Name und / oder Passwort falsch");
versuche++;
if(versuche>3){
ban=5000;
} //5Minuten gebannt.
}
}
}};
Bitte nicht auf Syntax o.ä. achten, wie gesagt, ist gekürtzt(kann sein, dass ne klammer fehlt)
beim kompilieren (Mingw) gibt es keine Fehler oder Warnungen.
Bis gestern gings auch noch, ich weiß nicht was ich hier so verändert habe, dass es nicht mehr geht

Ich hoffe ihr könnt mir helfen

#edit: Ausgangsdateien:
cur_user.dll: Leer oder wird gelöscht (ios::trunc)
system.dll:
Code:
Peter
Hans
Karl
8512
kl11c
fw34
Zuletzt bearbeitet: