Problem mit MySQL login

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 ein Problem mit meinem MYSQL login und zwar kann ich mich immer nur einmal einloggen wenn ich das ein zweites mal probiere stürzt der Server ab:
    Einloggen
    dann gebe ich wieder /q in den Chat ein, dann logge ich mich wieder geben Passwort ein die die Dialog Box und der Server stürzt ab.



    public OnPlayerLogin(playerid,const string[])
    {
    new pname2[MAX_PLAYER_NAME];
    new pname3[MAX_PLAYER_NAME];
    new string3[128];
    GetPlayerName(playerid, pname2, sizeof(pname2));
    new query[256];
    new line[1024];


    format(query, sizeof(query), "SELECT * FROM `users` WHERE `name` = '%s'", pname2);
    samp_mysql_query(query);
    samp_mysql_store_result();
    samp_mysql_fetch_row(line);


    new passwd[32];
    samp_mysql_get_field("Passwort", passwd);


    if(strcmp(string, passwd, true) != 0)
    {
    new loginstring[256];
    format(loginstring, sizeof(loginstring), " Willkommen zurück,\n auf dem TRL Server %s \n Gib dein Passwort ein um dich zu einzuloggen",pname2);
    ShowPlayerDialog(playerid,dialog_login,1,"Login",loginstring,"Abbrechen","Login");
    SendClientMessage(playerid, COLOR_WHITE, "TRL: Das Passwort stimmt nicht mit dem Usernamen überein.");
    gPlayerLogTries[playerid] += 1;
    if(gPlayerLogTries[playerid] == 4)
    {
    SendClientMessage(playerid, COLOR_WHITE, "TRL: Du wurdest gebannt da du das Passwort zu oft Falsch eingegeben hast..");
    Ban(playerid);
    }
    return 1;
    }


    new str[256],skinstr[256];


    samp_mysql_get_field("Admin", str);
    PlayerInfo[playerid][pAdmin] = strval(str);


    samp_mysql_get_field("Kills", str);
    PlayerInfo[playerid][pKills] = strval(str);


    samp_mysql_get_field("Tode", str);
    PlayerInfo[playerid][pDeaths] = strval(str);

    samp_mysql_get_field("Level", str);
    PlayerInfo[playerid][pLevel] = strval(str);


    samp_mysql_get_field("Spielzeit", str);
    PlayerInfo[playerid][pPlaytime] = strval(str);


    samp_mysql_get_field("Fraktion", str);
    PlayerInfo[playerid][pFraktion] = strval(str);


    samp_mysql_get_field("FraktionsRang", str);
    PlayerInfo[playerid][pFrang] = strval(str);


    samp_mysql_get_field("Geld", str);
    GivePlayerMoney(playerid, strval(str));

    samp_mysql_get_field("Skin", skinstr);
    PlayerInfo[playerid][pSkin] = strval(skinstr);
    printf("%d",PlayerInfo[playerid][pSkin]);



    gPlayerLogged[playerid] = 1;
    gPlayerAccount[playerid] = 1;
    GetPlayerName(playerid, pname3, sizeof(pname3));
    format(string3, sizeof(string3), "Welcome %s, du bist nun eingeloggt!", pname3);
    SpawnPlayer(playerid);
    SendClientMessage(playerid, COLOR_WHITE,string3);
    pimerday[playerid] = SetTimerEx("pimer",60000,0,"i",playerid);
    return 1;
    }


    EDIT:


    Ich habe das ganze jetzt mal so gemacht:
    format(query, sizeof(query), "SELECT * FROM `users` WHERE `name` = '%s'", pname2);
    print("nach SELECT");
    samp_mysql_query(query);
    print("nach query");
    samp_mysql_store_result();
    print("nach store_result");
    samp_mysql_fetch_row(line);
    print("nach fetch row");


    Und das letzte was im Log steht ist nach store_result.
    Also muss das ganze ja an fetch row liegen nur woran dort genau und was muss ich machen ?

    Einmal editiert, zuletzt von Tirus ()