Login und Register System erstellt keine Daten !?

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 Leute,
    ich hab gerade ein Login&Register System geschrieben,
    aber es erstellt einfach keine Dateien -.-
    Hier der Code beim Connect:
    public OnPlayerConnect(playerid)
    {
    new Spieler[64];
    new Pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Pname,sizeof(Pname));
    format(Spieler,sizeof(Spieler),"/ServerDaten/Accounts/%s.txt",Pname);
    if(dini_Exists("Spieler"))
    {
    SendClientMessage(playerid,GELB,"Herzlich Willkommen zurück !");
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Einloggen","Willkommen zurück ! Bitte gib dein Passwort ein !","Einloggen,","Abbrechen");
    return 1;
    }
    else
    {
    ShowPlayerDialog(playerid,REGISTRIEREN,DIALOG_STYLE_INPUT,"Registrieren","Herzlich Willkommen auf (Hier Servername einfügen) ! Du du noch keinen Account angelegt hast bitten wir dich dies jetzt\n zu tun !Bitte gib nun dein gewünschtes Account Passwort ein !","Registrieren","Abbrechen");
    return 1;
    }
    return 1;
    }
    OnPlayerDIalogResponse:
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == LOGIN)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,ROT,"Du hast den Login Vorgang abgebrochen und wurdest gekickt !");
    Kick(playerid);
    return 1;
    }
    if(response == 1)
    {
    Einloggen(playerid,inputtext); //MD Init entschlüsseln
    return 1;


    }
    }
    if(dialogid == REGISTRIEREN)
    {
    if(response == 0)
    {
    Kick(playerid);
    SendClientMessage(playerid,ROT,"Du hast den Registrationsvorgang abgebrochen und wurdest gekickt ! Bitte connecte erneut um fortzufahren.");
    return 1;
    }
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,ROT,"Bitte gib ein Passwort ein !");
    ShowPlayerDialog(playerid,REGISTRIEREN,DIALOG_STYLE_INPUT,"Registrieren","Bitte gib ein Passwort ein !!!","Registrieren","Abbrechen");
    return 1;
    }
    Registrieren(playerid,inputtext); //Später noch MD5 Hash
    return 1;
    }
    return 1;
    }

    return 1;
    }
    DIe Stocks:
    stock Registrieren(playerid,Key[])
    {
    new Spieler[64];
    new Pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Pname,sizeof(Pname));
    format(Spieler,sizeof(Spieler),"/ServerDaten/Accounts/%s.txt",Pname);
    dini_Create();
    dini_Set(Spieler,"Passwort",Key);
    dini_IntSet(Spieler,"Beruf",0);
    SendClientMessage(playerid,GELB,"Du hast dich erfolgreich auf dem Server registriert !");
    return 1;
    }
    stock Einloggen(playerid,Key[])
    {
    new Spieler[64];
    new Pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Pname,sizeof(Pname));
    format(Spieler,sizeof(Spieler),"/ServerDaten/Accounts/%s.txt",Pname);
    if(!strcmp(Key,dini_Get(Spieler,"Passwort"),true))
    {
    SendClientMessage(playerid,GELB,"Du hast dich erfolgreich eingeloggt !");

    }
    else
    {
    SendClientMessage(playerid,ROT,"Du hast ein falsches Passwort eigegeben,bitte versuche es erneut ! !");
    }



    }
    Kann mir jemand helfen ?
    MfG
    Das Brot

  • Hast dud ie Ordner /ServerDaten/Accounts/ angelegt? Und auch Gross Kleinschreibung beachtet?

    Wer ist der Mensch hinter der Uniform? Ist euch das bekannt?
    Es ist der selbe der noch eben in Zivil neben euch stand.
    Warum wird er gehasst und so selten respektiert?
    Warum ist er derjenige der seinen Hals für euch riskiert?
    Trägt der Bulle eine Weste, das hat er früher nie gemacht,
    die Zeiten haben sich geändert und jeder Dienst ist ein Kampf!
    Warum gibt’s das SEK und warum sind sie so brutal?
    Und wieso hat wieder einer mit seinem Leben bezahlt?

  • Hier, was du alles noch machen solltest:


    OnPlayerDisconnect:
    public OnPlayerDisconnect(playerid, reason){ SpielerSpeichern(playerid);
    return 1;}



    Login Stock:
    stock Einloggen(playerid,Key[]){
    new Spieler[64];
    new Pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Pname,sizeof(Pname));
    format(Spieler,sizeof(Spieler),"/ServerDaten/Accounts/%s.txt",Pname);
    if(!strcmp(Key,dini_Get(Spieler,"Passwort"),true))
    {
    SendClientMessage(playerid,GELB,"Du hast dich erfolgreich eingeloggt !");
    SpielerLaden(playerid);


    }


    else
    {
    SendClientMessage(playerid,ROT,"Du hast ein falsches Passwort eigegeben,bitte versuche es erneut ! !");
    }



    }


    return 1;}




    stock SpielerSpeichern(playerid){ new player[64]; new Sname[MAX_PLAYER_NAME]; GetPlayerName(playerid,Pname,sizeof(Sname)); format(player, sizeof(player),"/player/%s.txt",Pname); if(dini_Exists(Spieler)) { Hier deine dini_Set bzw. dini_IntSet´s rein. } return 1;}


    Müsste hoffentlich so passen :D


    Edit:// Hm... die Pwn´s gingen i-wie teilweise in die hose... nen bisschen verschoben :D

  • Hast du evtl. i.was falsches im Script eingegben, bezüglich ShowDialog?
    Guck mal, ob sich unter der Abfrage ob das PW stimmt noch was mit nem Dialog ist.
    Bei mir ist das so:
    if(GetPVarInt(playerid,"Key")!=strval /* oder so xD */ )
    {
    SetPVarInt(playerid,"Loggedin",1);
    }
    else
    {
    ShowPlayerDialog(blablabla);
    }

    Liebe Grüße


    Marcel