Register/Login Passwort wird nicht erkannt

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo,
    ich habe heute festgestellt das ich wenn ich mich einlogge irgendein Passwort eingeben kann und dann ist man auf dem server, das sollte natürlich nicht sein :D
    Ich finde den Fehler nicht, vieleicht könnt ihr ihn ja finden:


    Spoiler anzeigen
    OnPlayerConnect:

    Spoiler anzeigen
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {
    new string[128];
    format(string, sizeof(string), "{FFFF00}Willkommen zurück %s gib bitte dein Passwort ein:", Spielername(playerid));
    ShowPlayerDialog(playerid,LOGIN_DIALOG,DIALOG_STYLE_PASSWORD,"{0076FF}Einloggen",string,"Login","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,REGISTER_DIALOG,DIALOG_STYLE_INPUT,"{0076FF}Registrieren","{FFFF00}Willkommen, gib bitte das gewünschte Passwort ein:","Registrieren","Abbrechen");
    }

    Spoiler anzeigen
    Die Stocks:

    Spoiler anzeigen
    stock Register(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    SendClientMessage(playerid,FARBE_GRÜN,"Du hast dich Erfolgreich Registriert!");
    new pName[MAX_PLAYER_NAME];
    new string[128];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "{0000FF}***{00C1FF}---%s %s--- {0000FF}hat den Server betreten.***",Admintextname(playerid), pName);
    SendClientMessageToAll(FARBE_HELLBLAU, string);
    SetPlayerScore(playerid,0);
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }

    Spoiler anzeigen
    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(gettime()<dini_Int(Spielerdatei,"timeban"))
    {
    SendClientMessage(playerid,FARBE_ROT,"Du bist noch gebannt!");
    Kick(playerid);
    return 1;
    }
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    LoadAccount(playerid);
    SendClientMessage(playerid,FARBE_GRÜN,"Du hast dich Erfolgreich Eingeloggt!");
    new pName[MAX_PLAYER_NAME];
    new string[128];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "{0000FF}***{00C1FF}---%s %s--- {0000FF}hat den Server betreten.***",Admintextname(playerid), pName);
    SendClientMessageToAll(FARBE_HELLBLAU, string);
    }
    else
    {
    SendClientMessage(playerid,FARBE_ROT,"Falsches Passwort!");
    new string[128];
    format(string, sizeof(string), "{FFFF00}Willkommen zurück %s gib bitte dein Passwort ein:", Spielername(playerid));
    ShowPlayerDialog(playerid,LOGIN_DIALOG,DIALOG_STYLE_PASSWORD,"{0076FF}Einloggen",string,"Login","Abbrechen");
    return 1;
    }
    return 1;
    }

    Spoiler anzeigen
    stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPlayerSkin(playerid,dini_Int(Spielerdatei,"Skin"));
    SetPlayerColor(playerid,dini_Int(Spielerdatei,"Namenfarbe"));
    SetPlayerWantedLevel(playerid,dini_Int(Spielerdatei,"Wanted"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
    SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
    SetPVarInt(playerid,"Waffenschein",dini_Int(Spielerdatei,"Waffenschein"));
    SetPVarInt(playerid,"Job",dini_Int(Spielerdatei,"Job"));
    SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
    SetPVarInt(playerid,"paytime",dini_Int(Spielerdatei,"paytime"));
    SetPVarInt(playerid,"PlayHours",dini_Int(Spielerdatei,"PlayHours"));
    SetPVarInt(playerid,"PlayMinutes",dini_Int(Spielerdatei,"PlayMinutes"));
    SetPVarInt(playerid,"Tode",dini_Int(Spielerdatei,"Tode"));
    SetPVarInt(playerid,"Kills",dini_Int(Spielerdatei,"Kills"));
    SetPVarInt(playerid,"loggedin",1);
    if(GetPVarInt(playerid,"Baned")== 1)
    {
    SendClientMessage(playerid,FARBE_ROT,"Du bist vom Server gebannt!");
    Kick(playerid);
    }
    SetPVarInt(playerid,"Führerschein",dini_Int(Spielerdatei,"Führerschein"));
    SetPVarInt(playerid,"Bootschein",dini_Int(Spielerdatei,"Bootschein"));
    SetPVarInt(playerid,"LKW Schein",dini_Int(Spielerdatei,"LKW Schein"));
    SetPVarInt(playerid,"Flugschein",dini_Int(Spielerdatei,"Flugschein"));
    SetPVarInt(playerid,"Motorradschein",dini_Int(Spielerdatei,"Motorradschein"));
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }

    Spoiler anzeigen
    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")== 1)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    new pstunde, pminute, psekunde;
    new pjahr, pmonat, ptag;
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"Uhrzeit",gettime(pstunde,pminute,psekunde));
    dini_IntSet(Spielerdatei,"Datum",getdate(pjahr,pmonat,ptag));
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Wanted",GetPlayerWantedLevel(playerid));
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(Spielerdatei,"Waffenschein",GetPVarInt(playerid,"Waffenschein"));
    dini_IntSet(Spielerdatei,"Job",GetPVarInt(playerid,"Job"));
    dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
    dini_IntSet(Spielerdatei,"timeban",GetPVarInt(playerid,"timeban"));
    dini_IntSet(Spielerdatei,"Skin",GetPlayerSkin(playerid));
    dini_IntSet(Spielerdatei,"Namenfarbe",GetPlayerColor(playerid));
    dini_IntSet(Spielerdatei,"Führerschein",GetPVarInt(playerid,"Führerschein"));
    dini_IntSet(Spielerdatei,"Bootschein",GetPVarInt(playerid,"Bootschein"));
    dini_IntSet(Spielerdatei,"LKW Schein",GetPVarInt(playerid,"LKW Schein"));
    dini_IntSet(Spielerdatei,"Flugschein",GetPVarInt(playerid,"Flugschein"));
    dini_IntSet(Spielerdatei,"Motorradschein",GetPVarInt(playerid,"Motorradschein"));
    dini_IntSet(Spielerdatei,"paytime",GetPVarInt(playerid,"paytime"));
    dini_IntSet(Spielerdatei,"PlayHours",GetPVarInt(playerid,"PlayHours"));
    dini_IntSet(Spielerdatei,"PlayMinutes",GetPVarInt(playerid,"PlayMinutes"));
    dini_IntSet(Spielerdatei,"Tode",GetPVarInt(playerid,"Tode"));
    dini_IntSet(Spielerdatei,"Kills",GetPVarInt(playerid,"Kills"));
    }
    return 1;
    }

    MfG SkrilLinux


    Ich habe euch erfolgreich geholfen?
    -Dann wäre es nett wenn ihr 1x auf Bedanken klickt :)

  • OnDialogResponse für den Fall dialogid==LOGIN_DIALOG wäre hier am interessantesten, glaube ich.


    Spoiler anzeigen
    if(dialogid == LOGIN_DIALOG)//Login
    {
    if(response==0)
    {
    SendClientMessage(playerid,FARBE_ROT,"Du hast den Vorgang Abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,FARBE_ROT,"Das gewünschte Passwort war zu kurz!");
    new string[128];
    format(string, sizeof(string), "{FFFF00}Willkommen zurück %s gib bitte dein Passwort ein:", Spielername(playerid));
    ShowPlayerDialog(playerid,LOGIN_DIALOG,DIALOG_STYLE_PASSWORD,"{0076FF}Einloggen",string,"Login","Abbrechen");
    return 1;
    }
    else
    {
    Login(playerid,inputtext);
    return 1;
    }
    }
    }

    Spoiler anzeigen
    if(dialogid == REGISTER_DIALOG)//Register
    {
    if(response==0)
    {
    SendClientMessage(playerid,FARBE_ROT,"Du hast den Vorgang Abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,FARBE_ROT,"Das gewünschte Passwort ist zu kurz!");
    ShowPlayerDialog(playerid,REGISTER_DIALOG,DIALOG_STYLE_INPUT,"{0076FF}Registrieren","{FFFF00}Willkommen, gib bitte das gewünschte Passwort ein:","Registrieren","Abbrechen");
    return 1;
    }
    else
    {
    Register(playerid,inputtext);
    SetPlayerColor(playerid,FARBE_GELB);
    return 1;
    }
    }
    }

    MfG SkrilLinux


    Ich habe euch erfolgreich geholfen?
    -Dann wäre es nett wenn ihr 1x auf Bedanken klickt :)

  • if(!strlen(inputtext))
    {
    //..
    }
    else
    {
    Login(playerid,inputtext);
    return 1;
    }
    Du prüfst nur, ob überhaupt was im Feld eingegeben wurde, nicht, ob das Eingegebene auch das passende Passwort ist.
    Du müsstest also vorher gesondert NUR das Passwort abfragen und wenn das dann stimmt, den Spieler laden.

    Ich bin Dittis Signatur.

  • Und bitte sei nicht so untätig und speichere Passwörter im Klartext (Dafür sollte man dich schlagen). Möglichkeiten hier:



    Ansonsten stellste eine wandelnde Gefahr für alle dar.


    Gruss

  • Brauche immernoch hilfe :(
    Das muss an dem hier liegen:


    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(gettime()<dini_Int(Spielerdatei,"timeban"))
    {
    SendClientMessage(playerid,FARBE_ROT,"Du bist noch gebannt!");
    Kick(playerid);
    return 1;
    }
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    LoadAccount(playerid);
    SendClientMessage(playerid,FARBE_GRÜN,"Du hast dich Erfolgreich Eingeloggt!");
    new pName[MAX_PLAYER_NAME];
    new string[128];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "{0000FF}***{00C1FF}---%s %s--- {0000FF}hat den Server betreten.***",Admintextname(playerid), pName);
    SendClientMessageToAll(FARBE_HELLBLAU, string);
    }
    else
    {
    SendClientMessage(playerid,FARBE_ROT,"Falsches Passwort!");
    new string[128];
    format(string, sizeof(string), "{FFFF00}Willkommen zurück %s gib bitte dein Passwort ein:", Spielername(playerid));
    ShowPlayerDialog(playerid,LOGIN_DIALOG,DIALOG_STYLE_PASSWORD,"{0076FF}Einloggen",string,"Login","Abbrechen");
    return 1;
    }
    return 1;
    }


    @ Dudalus Ich will das erstmal fixxen :D
    Dann kann ich mich darum kümmern ^^

    MfG SkrilLinux


    Ich habe euch erfolgreich geholfen?
    -Dann wäre es nett wenn ihr 1x auf Bedanken klickt :)

    Einmal editiert, zuletzt von Freestyyler ()

  • Und bitte sei nicht so untätig und speichere Passwörter im Klartext (Dafür sollte man dich schlagen). Möglichkeiten hier:



    Ansonsten stellste eine wandelnde Gefahr für alle dar.


    Gruss


    Schick mal deinen DIALOG_LOGIN


    Steht oben noch versteckt aber hier:


    if(dialogid == LOGIN_DIALOG)//Login
    {
    if(response==0)
    {
    SendClientMessage(playerid,FARBE_ROT,"Du hast den Vorgang Abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,FARBE_ROT,"Das gewünschte Passwort war zu kurz!");
    new string[128];
    format(string, sizeof(string), "{FFFF00}Willkommen zurück %s gib bitte dein Passwort ein:", Spielername(playerid));
    ShowPlayerDialog(playerid,LOGIN_DIALOG,DIALOG_STYLE_PASSWORD,"{0076FF}Einloggen",string,"Login","Abbrechen");
    return 1;
    }
    else
    {
    Login(playerid,inputtext);
    return 1;
    }
    }
    }


    if(dialogid == REGISTER_DIALOG)//Register
    {
    if(response==0)
    {
    SendClientMessage(playerid,FARBE_ROT,"Du hast den Vorgang Abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,FARBE_ROT,"Das gewünschte Passwort ist zu kurz!");
    ShowPlayerDialog(playerid,REGISTER_DIALOG,DIALOG_STYLE_INPUT,"{0076FF}Registrieren","{FFFF00}Willkommen, gib bitte das gewünschte Passwort ein:","Registrieren","Abbrechen");
    return 1;
    }
    else
    {
    Register(playerid,inputtext);
    SetPlayerColor(playerid,FARBE_GELB);
    return 1;
    }
    }
    }

    MfG SkrilLinux


    Ich habe euch erfolgreich geholfen?
    -Dann wäre es nett wenn ihr 1x auf Bedanken klickt :)

  • Also ich würde es ja so machen ;)
    Weiß nicht obs funktioniert, habe es schnell geschrieben :D


    if(dialogid == LOGIN_DIALOG)//Login
    {
    if(response==0)
    {
    SendClientMessage(playerid,FARBE_ROT,"Du hast den Vorgang Abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext)) {
    SendClientMessage(playerid,FARBE_ROT,"Das gewünschte Passwort war zu kurz!");
    new string[128];
    format(string, sizeof(string), "{FFFF00}Willkommen zurück %s gib bitte dein Passwort ein:", Spielername(playerid));
    ShowPlayerDialog(playerid,LOGIN_DIALOG,DIALOG_STYLE_PASSWORD,"{0076FF}Einloggen",string,"Login","Abbrechen");
    return 1;
    }
    if(strcmp(inputtext, dini_Get(Spielerdatei,"Passwort"), false)) {
    Login(playerid);
    return 1;
    } else {
    SendClientMessage(playerid,FARBE_ROT,"Falsches Passwort!");
    format(string, sizeof(string), "{FFFF00}Willkommen zurück %s gib bitte dein Passwort ein:", Spielername(playerid));
    ShowPlayerDialog(playerid,LOGIN_DIALOG,DIALOG_STYLE_PASSWORD,"{0076FF}Einloggen",string,"Login","Abbrechen");
    return 1;
    }
    }
    }

    stock Login(playerid)
    {
    new Spielerdatei[64], name[MAX_PLAYER_NAME], string[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(gettime()<dini_Int(Spielerdatei,"timeban"))
    {
    SendClientMessage(playerid,FARBE_ROT,"Du bist noch gebannt!");
    Kick(playerid);
    return 1;
    }
    LoadAccount(playerid);
    SendClientMessage(playerid,FARBE_GRÜN,"Du hast dich Erfolgreich Eingeloggt!");
    format(string, sizeof(string), "{0000FF}***{00C1FF}---%s %s--- {0000FF}hat den Server betreten.***",Admintextname(playerid), name);
    SendClientMessageToAll(FARBE_HELLBLAU, string);
    return 1;
    }

  • Und bitte sei nicht so untätig und speichere Passwörter im Klartext (Dafür sollte man dich schlagen). Möglichkeiten hier:



    Ansonsten stellste eine wandelnde Gefahr für alle dar.


    Gruss


    was bist du denn für einer ?
    brauchst ihn nicht gleich so angehen ? soll er wenn er das gerade übt gleich verschlüsseln ?
    -unnötig :cursing:

  • Ich bin im Dialog (angenommen mein Passwort ist Peter)
    Ich gebe das Passwort einmal leer ein, da kommt die meldung, das ich etwas eintippen muss [RICHTIG]
    Ich gebe Hans als Passwort ein und es loggt mich trotzdem ein und ich kann spawnen [FALSCH]

    MfG SkrilLinux


    Ich habe euch erfolgreich geholfen?
    -Dann wäre es nett wenn ihr 1x auf Bedanken klickt :)


  • was bist du denn für einer ?
    brauchst ihn nicht gleich so angehen ? soll er wenn er das gerade übt gleich verschlüsseln ?
    -unnötig :cursing:


    Ich frage mich eher, was Du für einer bist. Hast Du Freude, wenn dein Passwort unverschlüsselt auf nem Server liegt - ich denke mal nicht ? Ich wäre ein Idiot, wenn ich sagen würde, er soll zum Teufel seine schei** Passworter verschlüsseln (ohne ihm gleich 3 Möglichkeiten aufzulisten, und das tue ich ja), also lehn dich mal bitte nicht so weit raus.


    Und ja, er soll es verschlüsseln, wenn er was macht, am besten glreich auch richtig


    @TS Problem besteht immer noch ?