Beim Login immer Reset der Variable Passwort und DNA

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,


    mir ist aufgefallen das immer wenn ich mich einlogge das das Passwort und die DNA auf 0 gesettet wird bzw. auf garnichts.




    Hier der Code wo eig. alles gesettet wird...


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new query[256], key[50];
    if(dialogid == DIALOG_REGISTER)
    {
    if(!response)
    {
    return Kick(playerid);
    }
    if(strlen(inputtext) < 4)return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration", "Willkommen auf German Police Life,\n\n es wurde kein Account mit dem Namen in unserer Datenbank gefunden.\n Bitte Registrieren Sie sich.\n Merken Sie sich das Passwort und geben Sie es an keinen Dritten weiter.\n Das German Police Life Team wird Sie nicht nach ihrem Passwort fragen!", "Registration", "Abbrechen");
    format(key, 50, "%s", inputtext);
    new pickstr[] = "ABCDEFGH0123456789";
    new endstr[11], rand;
    for(new i=0; i<sizeof(endstr); i++)
    {
    rand = random(strlen(pickstr));
    format(endstr, sizeof(endstr), "%s%c", endstr, pickstr[rand]);
    strdel(pickstr, rand, rand+1);
    }
    mysql_format(mysqlHandle, query, sizeof(query), "INSERT INTO accounts (`Name`, `Passwort`, `DNA`) VALUES ('%e','%e','%e')", NamePlayer(playerid), key, endstr);
    mysql_tquery(mysqlHandle, query);
    SendClientMessage(playerid, -1, "Dein Account wurde erstellt.");
    format(SpielerInfo[playerid][pPasswort], 32, inputtext);
    format(SpielerInfo[playerid][pDNA], 32, endstr);
    SpawnPlayer(playerid);
    printf("Account erstellt %s",NamePlayer(playerid));
    }
    if(dialogid == DIALOG_LOGIN)
    {
    if(!response)
    {
    return Kick(playerid);
    }
    format(key, 50, "%s", inputtext);
    mysql_escape_string(NamePlayer(playerid), NamePlayer(playerid)), mysql_escape_string(key, key);
    format(query, sizeof(query), "SELECT * FROM accounts WHERE Name='%s' AND Passwort='%s'", NamePlayer(playerid), key);
    mysql_tquery(mysqlHandle, query, "OnPasswordResponse", "i", playerid);
    printf("Eingeloggt %s",NamePlayer(playerid));
    }
    return 1;
    }





    Hier die Publics:


    public OnPasswordResponse(playerid)
    {
    new num_fields, num_rows;
    cache_get_data(num_rows, num_fields);
    if(num_rows == 0)
    {
    //Passwort falsch..
    SendClientMessage(playerid, -1, "Das Passwort ist inkorrekt.");
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Falsches Passwort", "Willkommen auf German Police Life,\n\n das Passwort was Sie eingegeben haben ist falsch.\nBitte gebe das Richtige Passwort ein:", "Anmelden", "Abbrechen");
    }
    else
    {
    //Passwort richtig..
    new query[56], pID;
    SendClientMessage(playerid, -1, "Erfolgreich eingeloggt.");
    SpielerInfo[playerid][pEingeloggt] = true;
    format(query, sizeof(query), "SELECT Banned FORM accounts WHERE Name='%s'", NamePlayer(pID));
    mysql_tquery(mysqlHandle, query, "CheckBanned", "d", NamePlayer(pID));
    LoadAccount(playerid);
    SpawnPlayer(playerid);
    }
    return 1;
    }


    public UserCheck(playerid)
    {
    new num_rows, num_fields;
    cache_get_data(num_rows, num_fields, mysqlHandle);
    if(num_rows == 0)
    {
    //Register..
    ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration", "Willkommen auf German Police Life,\n\n es wurde kein Account mit dem Namen in unserer Datenbank gefunden.\n Bitte Registrieren Sie sich.\n Merken Sie sich das Passwort und geben Sie es an keinen Dritten weiter.\n Das German Police Life Team wird Sie nicht nach ihrem Passwort fragen!", "Registrieren", "Abbrechen");
    }
    else
    {
    //Login..
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Hallo User,\n\nWillkommen zurück.\nBitte Log dich ein.", "Anmelden", "Abbrechen");
    }
    return 1;
    }


    ;(;(;(;(

  • stock LoadAccount(playerid)
    {
    SpielerInfo[playerid][pEingeloggt] = true;
    SpielerInfo[playerid][pGeld] = cache_get_field_content_int(0, "Geld", mysqlHandle), GivePlayerMoney(playerid, SpielerInfo[playerid][pGeld]);
    SpielerInfo[playerid][pLevel] = cache_get_field_content_int(0, "Level", mysqlHandle), SetPlayerScore(playerid, SpielerInfo[playerid][pLevel]);
    SpielerInfo[playerid][pKills] = cache_get_field_content_int(0, "Kills", mysqlHandle);
    SpielerInfo[playerid][pTode] = cache_get_field_content_int(0, "Tode", mysqlHandle);
    SpielerInfo[playerid][pAdminlevel] = cache_get_field_content_int(0, "Adminlevel", mysqlHandle);
    SpielerInfo[playerid][pIP] = cache_get_field_content_int(0, "IP", mysqlHandle);
    SpielerInfo[playerid][pBanned] = cache_get_field_content_int(0, "Banned", mysqlHandle);
    SpielerInfo[playerid][pBangrund] = cache_get_field_content_int(0, "Bangrund", mysqlHandle);
    SpielerInfo[playerid][pBanadmin] = cache_get_field_content_int(0, "Banadmin", mysqlHandle);
    SpielerInfo[playerid][pFraktion] = cache_get_field_content_int(0, "Fraktion", mysqlHandle);
    SpielerInfo[playerid][pRang] = cache_get_field_content_int(0, "Rang", mysqlHandle);
    SpielerInfo[playerid][pVerwarnungen] = cache_get_field_content_int(0, "Verwarnungen", mysqlHandle);
    SpielerInfo[playerid][pPasswort] = cache_get_field_content_int(0, "Passwort", mysqlHandle);
    SpielerInfo[playerid][pDNA] = cache_get_field_content_int(0, "DNA", mysqlHandle);
    SpielerInfo[playerid][pVerbrechen] = cache_get_field_content_int(0, "Verbrechen", mysqlHandle);
    printf("Acc geladen (%s)",NamePlayer(playerid));
    return 1;
    }

  • SpielerInfo[playerid][pPasswort] = cache_get_field_content_int(0, "Passwort", mysqlHandle);
    SpielerInfo[playerid][pDNA] = cache_get_field_content_int(0, "DNA", mysqlHandle);
    zu:
    cache_get_field_content(0, "Passwort", SpielerInfo[playerid][pPasswort], mysqlHandle, 32);
    cache_get_field_content(0, "DNA", SpielerInfo[playerid][pDNA], mysqlHandle, 16);


    Die 32 bzw. 16 änderst du zu dem was im enum bei pPasswort und pDNA steht.

  • Da das Enum so ist: enum PD
    {
    bool:pEingeloggt, //1
    pGeld, //2
    pLevel, //3
    pName, //4
    pTode, //5
    pKills, //6
    pAdminlevel, //7
    pIP, //8
    pBanned, //9
    pBangrund, //10
    pBanadmin, //11
    pFraktion, //12
    pRang, //13
    pVerwarnungen, //14
    pPasswort, //15
    pDNA, //16
    pVerbrechen, //17
    pKiller, //18
    pKillerWeapon
    }


    muss das logischer weise so oder?
    stock LoadAccount(playerid)
    {
    SpielerInfo[playerid][pEingeloggt] = true;
    SpielerInfo[playerid][pGeld] = cache_get_field_content_int(0, "Geld", mysqlHandle), GivePlayerMoney(playerid, SpielerInfo[playerid][pGeld]);
    SpielerInfo[playerid][pLevel] = cache_get_field_content_int(0, "Level", mysqlHandle), SetPlayerScore(playerid, SpielerInfo[playerid][pLevel]);
    SpielerInfo[playerid][pKills] = cache_get_field_content_int(0, "Kills", mysqlHandle);
    SpielerInfo[playerid][pTode] = cache_get_field_content_int(0, "Tode", mysqlHandle);
    SpielerInfo[playerid][pAdminlevel] = cache_get_field_content_int(0, "Adminlevel", mysqlHandle);
    SpielerInfo[playerid][pIP] = cache_get_field_content_int(0, "IP", mysqlHandle);
    SpielerInfo[playerid][pBanned] = cache_get_field_content_int(0, "Banned", mysqlHandle);
    SpielerInfo[playerid][pBangrund] = cache_get_field_content_int(0, "Bangrund", mysqlHandle);
    SpielerInfo[playerid][pBanadmin] = cache_get_field_content_int(0, "Banadmin", mysqlHandle);
    SpielerInfo[playerid][pFraktion] = cache_get_field_content_int(0, "Fraktion", mysqlHandle);
    SpielerInfo[playerid][pRang] = cache_get_field_content_int(0, "Rang", mysqlHandle);
    SpielerInfo[playerid][pVerwarnungen] = cache_get_field_content_int(0, "Verwarnungen", mysqlHandle);
    cache_get_field_content(0, "Passwort", SpielerInfo[playerid][pPasswort], mysqlHandle, pPasswort);
    cache_get_field_content(0, "DNA", SpielerInfo[playerid][pDNA], mysqlHandle, pDNA);
    SpielerInfo[playerid][pVerbrechen] = cache_get_field_content_int(0, "Verbrechen", mysqlHandle);
    printf("Acc geladen (%s)",NamePlayer(playerid));
    return 1;
    }

  • Ich wollte keinen Neuen Thread aufmachen.


    Ich habe hier mein Public OnBannedCheck welches mir eine Liste macht welche Accounts gesperrt sind.
    Doch es kommt nur 1 und ohne grund und Bannadmin.


    Code:
    public OnBannedCheck(playerid)
    {
    new rows = cache_get_row_count(), string[145];
    for(new i=0; i < rows; i++)
    {
    cache_get_row(i, 0, string);
    ShowPlayerDialog(playerid, DIALOG_BANLISTE, DIALOG_STYLE_MSGBOX, "Gesperrte Accounts", string, "","");
    }
    return 1;
    }


    ocmd:banliste(playerid)
    {
    new query[256];
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,-1,"Du hast kein Admin Level 2");
    format(query, sizeof(query), "SELECT Name, Banadmin, Bangrund FROM accounts WHERE Banned = '1'");
    mysql_tquery(mysqlHandle, query, "OnBannedCheck", "d", playerid);
    return 1;
    }

  • public OnBannedCheck(playerid)
    {
    new rows = cache_get_row_count(), string[512], tmp[32];
    for(new i=0; i < rows; i++)
    {
    cache_get_row(i, 0, tmp);
    format(string, sizeof(string), "%s%s /", string, tmp);
    cache_get_row(i, 1, tmp);
    format(string, sizeof(string), "%s%s /", string, tmp);
    cache_get_row(i, 2, tmp);
    format(string, sizeof(string), "%s%s\n", string, tmp);
    }
    ShowPlayerDialog(playerid, DIALOG_BANLISTE, DIALOG_STYLE_MSGBOX, "Gesperrte Accounts", string, "","");
    return 1;
    }