Login Bug!

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
  • Hey, bei'm Login System buggt es immer, der ließt iwie das Passwort nie korrekt aus, und loggt ein egal was man da eingibt...


    zB Passwort: test
    Man gibt ein: lol


    Man kommt rein... hier der Login Dialog:


    if(dialogid == login)
    {
    if(response == 1)
    {
    new Spielerdatei[256];
    new SpielerName[MAX_PLAYER_NAME];
    if(!strlen(inputtext))return ShowPlayerDialog(playerid, login, DIALOG_STYLE_INPUT, "Logge dich ein!", " ", "Login!", "Abbrechen!");
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/Users/%s.ini",SpielerName);
    SpielerInfo[playerid][Passwort] = strval(dini_Get(Spielerdatei,"Passwort"));
    if(strcmp(inputtext,SpielerInfo[playerid][Passwort],false) == 0)
    {
    Anmelden(playerid);
    SpawnPlayer(playerid);
    }
    else
    {
    FalschesPasswort[playerid] += 1;
    PasswortFalsch(playerid);
    }
    }
    }

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


  • SpielerInfo[playerid][Passwort] = strval(dini_Get(Spielerdatei,"Passwort"));


    zu


    strmid(SpielerInfo[playerid][Passwort],dini_Get(Spielerdatei,"Passwort"),0,strlen(dini_Get(Spielerdatei,"Passwort")),strlen(dini_Get(Spielerdatei,"Passwort")));

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Dann ist immernoch der Bug:


    Auch wenn das PW korrekt ist (Was ich eingebe)


    Kommt halt:


    bla 1. fehler
    bla 2. fehler
    "du hast dich erfolgreich mit dem passwort: meinpasswort registriert"


    wtf?

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


  • Es geht um login..


    Allerdings:


    Ich versuche mich mit dem KORREKTEN PW einzuloggen, geht 3x nicht..
    Dann steht da


    Du hast dich erfolgreich mit den Name : %s und dem Passwort : %s registriert

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


  • ..:-X Ich poste jetzt mal alles, was mit login zu tun hat:


    forward Anmelden(playerid);
    forward PasswortFalsch(playerid);
    forward SpielerUpdate(playerid);


    public OnPlayerDisconnect(playerid, reason)
    {
    SpielerUpdate(playerid);
    Eingeloggt[playerid] = 0;
    SaveX[playerid] = 0;
    SaveY[playerid] = 0;
    SaveZ[playerid] = 0;
    SaveInt[playerid] = 0;


    Und hier Register UND Login:


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == login)
    {
    if(response == 1)
    {
    new Spielerdatei[256];
    new SpielerName[MAX_PLAYER_NAME];
    if(!strlen(inputtext))return ShowPlayerDialog(playerid, login, DIALOG_STYLE_INPUT, "Logge dich ein!", " ", "Login!", "Abbrechen!");
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/Users/%s.ini",SpielerName);
    strmid(SpielerInfo[playerid][Passwort],dini_Get(Spielerdatei,"Passwort"),0,strlen(dini_Get(Spielerdatei,"Passwort")),strlen(dini_Get(Spielerdatei,"Passwort")));
    if(strcmp(inputtext,SpielerInfo[playerid][Passwort],false) == 0)
    {
    Anmelden(playerid);
    SpawnPlayer(playerid);
    }
    else
    {
    FalschesPasswort[playerid] += 1;
    PasswortFalsch(playerid);
    }
    }
    }


    if(dialogid == regis)
    {
    if(response == 1)
    {
    new Spielerdatei[256];
    new SpielerName[MAX_PLAYER_NAME];
    SpielerInfo[playerid][alvl] = 0;
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/Users/%s.ini",SpielerName);
    dini_Create(Spielerdatei);
    if(!strlen(inputtext))return ShowPlayerDialog(playerid, regis, DIALOG_STYLE_INPUT, "Registriere dich!", " ", "Registrieren!", "Abbrechen!");
    dini_Set(Spielerdatei,"Passwort",inputtext);
    dini_IntSet(Spielerdatei,"Wanteds",SpielerInfo[playerid][Wanteds]);
    dini_IntSet(Spielerdatei,"Geld",SpielerInfo[playerid][Geld]);
    dini_IntSet(Spielerdatei,"AdminLevel",SpielerInfo[playerid][alvl]);
    new GlueckWunschText[256];
    format(GlueckWunschText,sizeof(GlueckWunschText),"Du hast dich erfolgreich mit den Name : %s und dem Passwort : %s registriert",SpielerName,inputtext);
    SendClientMessage(playerid,Rot,GlueckWunschText);
    Anmelden(playerid);
    SendClientMessage(playerid,Rot,"Du wurdest automatisch eingloggt!");
    }
    }


    Die Passwörter stehen auch noch in den .ini's --> Aber er ließt die wohl nie korrekt aus :-X


    //Edit: Hier die Enums


    enum SInfo
    {
    Passwort[256],
    Wanteds,
    Geld,
    Bank,
    alvl,
    Tode,
    Kills,
    Spawn,
    Team,
    Leader,
    Skin,
    Waffen,
    Jail,
    Banned,
    Reason[256],
    IP[128],
    }
    new SpielerInfo[MAX_PLAYERS][SInfo];

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


    2 Mal editiert, zuletzt von Hijashy ()

  • Das einzige Problem ist ja:


    Er sagt mir IMMER das es ein fehlerhaftes PW ist, und kickt dannach halt..

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


  • ja dann ist das PW falsch oder es liest es net aus datei raus und kick kommt vllt wegen falschem login du sollst die zeile Kick(playerid); suchen bei diesen Dialogen

  • ja dann ist das PW falsch oder es liest es net aus datei raus und kick kommt vllt wegen falschem login du sollst die zeile Kick(playerid); suchen bei diesen Dialogen

    Und dann?...x_X


    Der ließt alles aus, ausser das dumme PW -.-*

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


  • Wenn du dir nicht sicher bist, rufe mal eine Datei ab mit einem Passwort und gebe das Passwort mit print wieder in
    der Konsole, dann siehst du ob es Falsch ausließt zum anderen solltest du mal den Inhalt der folgenden Funktionen zeigen


    Code
    Anmelden(playerid);
    PasswortFalsch(playerid);


    da ich denke das dort das Hauptproblem liegt.

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • public Anmelden(playerid)
    {
    new Spielerdatei[256];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/Users/%s.ini",SpielerName);
    SpielerInfo[playerid][Geld] = dini_Int(Spielerdatei,"Geld");
    SpielerInfo[playerid][Bank] = dini_Int(Spielerdatei,"Bank");
    SpielerInfo[playerid][Wanteds] = dini_Int(Spielerdatei,"Wanteds");
    SpielerInfo[playerid][Team] = dini_Int(Spielerdatei,"Team");
    SpielerInfo[playerid][Leader] = dini_Int(Spielerdatei,"Leader");
    SpielerInfo[playerid][alvl] = dini_Int(Spielerdatei,"AdminLevel");
    SpielerInfo[playerid][Skin] = dini_Int(Spielerdatei,"Skin");
    new plw = SpielerInfo[playerid][Wanteds];
    new plg = SpielerInfo[playerid][Geld];
    new pls = SpielerInfo[playerid][Skin];
    //SetPlayerMoney(playerid,plg);
    SetPlayerSkin(playerid, pls);
    SetPlayerWantedLevel(playerid,plw);
    SendClientMessage(playerid,Rot,"Willkommen!");
    SpawnPlayer(playerid);


    Eingeloggt[playerid] = 1;

    if(SpielerInfo[playerid][alvl] > 0)
    {
    new lgnshwscr = SpielerInfo[playerid][alvl];
    new AdminLevelShow[256];
    format(AdminLevelShow,sizeof(AdminLevelShow),"Dein Account besitzt Admin-Rechte Level %d!",lgnshwscr);
    SendClientMessage(playerid, Rot, AdminLevelShow);
    }

    return 1;
    }



    public PasswortFalsch(playerid)
    {
    if(FalschesPasswort[playerid] == 1)
    {
    SendClientMessage(playerid,Rot,"Du hast das Passwort bereits 1 mal falsch eingegeben du hast noch 2 Versuche");
    ShowPlayerDialog(playerid, login, DIALOG_STYLE_INPUT, "Logge dich ein!", " ", "Login!", "Abbrechen!");
    }
    if(FalschesPasswort[playerid] == 2)
    {
    SendClientMessage(playerid,Rot,"Du hast das Passwort bereits 2 mal falsch eingegeben du hast noch 1 Versuch!");
    ShowPlayerDialog(playerid, regis, DIALOG_STYLE_INPUT, "Logge dich ein!", " ", "Login!", "Abbrechen!");
    }
    if(FalschesPasswort[playerid] == 3)
    {
    SendClientMessage(playerid,Rot,"Du hast das Passwort 3 mal falsch eingegeben, du wurdest gekickt!");
    Kick(playerid);
    }
    return 1;
    }

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


  • ShowPlayerDialog(playerid, regis, DIALOG_STYLE_INPUT, "Logge dich ein!", " ", "Login!", "Abbrechen!");



    -.-' Boah ey xD


    nix register hier xD
    LOGIN! *änder* xD

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


  • Aber weiter:


    Ich gebe aber das richtige PW ein, aber der will mich nicht einloggen lassen >_>

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


  • Lösche mal die Zeile
    strmid(SpielerInfo[playerid][Passwort],,0,strlen(dini_Get(Spielerdatei,"Passwort")),strlen(dini_Get(Spielerdatei,"Passwort")));

    und ändere die Abfrage in diese
    if(!strcmp(inputtext,dini_Get(Spielerdatei,"Passwort")))

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Woho!!!


    Endlich klappts!


    Übelst vielen dank, BlackFox!

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!