MySql mann kann sich mit jedem Passwort einloggen

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
  • Ich habe mal ein GF versucht auf MySQL umzuschreiben nunja mann kann sich mit jedem passwort einlogen


    if (strcmp(cmd, "/login", true) ==0 )
    {
    if(IsPlayerConnected(playerid))
    {
    new tmppass[64];
    if(gPlayerLogged[playerid] == 1)
    {
    SendClientMessage(playerid, COLOR_WHITE, "Server: Du bist schon eingeloggt!");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "FEHLER: Der Befehl lautet: /login [Passwort]");
    return 1;
    }
    strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
    OnPlayerLogin(playerid,tmppass);
    }
    return 1;
    }






    public OnPlayerLogin(playerid,password[])
    {
    new tmp2[256];
    new string2[128];
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername2, sizeof(playername2));
    new PassData[256];
    new keytmp[256], valtmp[256];


    /*fread( UserFile , PassData , sizeof( PassData ) );
    keytmp = ini_GetKey( PassData );
    if( strcmp( keytmp , "Key" , true ) == 0 )
    {
    valtmp = ini_GetValue( PassData );
    strmid(PlayerInfo[playerid][pKey], valtmp, 0, strlen(valtmp)-1, 255);
    }*/
    if(strcmp(password, (mysql_ReturnPasswort(playername2)), true))
    {
    GetPlayerName(playerid, PlayerInfo[playerid][pUserName], MAX_PLAYER_NAME); //Wir Speichern den Namen des Spielers in der Variable [i]PlayerInfo[playerid][pName][/i]
    // PlayerInfo[playerid][pKey] = mysql_GetInt("accounts", "Passwort", "Name", PlayerInfo[playerid][pUserName]); //Wir holen uns den wert der unter "Level" eingetragen ist und Speichern ihn in unserer Variable.
    PlayerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", PlayerInfo[playerid][pUserName]); //Wir holen uns den wert der unter "Geld" eingetragen ist und Speichern ihn in unserer Variable.
    PlayerInfo[playerid][pAdmin] = mysql_GetInt("accounts", "Admin", "Name", PlayerInfo[playerid][pUserName]); //Wir holen uns den wert der unter "Kills" eingetragen ist und Speichern ihn in unserer Variable.
    PlayerInfo[playerid][pSupporter] = mysql_GetInt("accounts", "Supporter", "Name", PlayerInfo[playerid][pUserName]);
    PlayerI


    und noch eine frage!?
    muss ich in der datenbank default auf 0 oder emty string setzen ?


    //edit


    fehler gefunden und gelöst mit


    if(!strcmp(password, (mysql_ReturnPasswort(playername2)), false))
    {

    Einmal editiert, zuletzt von VaporX ()