MySQL Checkaccount Fehler...

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
  • Heyy... bei mir ist es manchmal so, das wen man schon in der Datenbank steht also schon Regestriert ist und sich dan einloggen will, muss man sich neu Regestrieren, aber die alten Files werden übernommen 8|
    Aber das kommt nur manchmal vor.. Ich weiß echt nicht mehr weiter, ich benutze das Login und Register System von Julian(RFT) mit <MySQL>
    naya hier mal Checkaccount,.. daran sollte es ja eigentlich liegen.
    Erstmal das Einloggen Und Register Dialog
    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid, 1472.2893,-1627.4072,14.0469);
    ApplyAnimation(playerid, "PED", "SEAT_idle", 10000.0,0,0,0,1,0);
    SetPlayerFacingAngle(playerid,32);
    SetPlayerCameraPos(playerid, 1471.1930,-1624.6537,14.0469);
    SetPlayerCameraLookAt(playerid, 1472.7893,-1627.0072,14.0469);
    if(mysql_CheckAccount(PlayerName[playerid]) != 0)
    {
    ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, "Login", "Wilkommen auf Orange-Gaming.\nDu kannst dich nun einloggen", "Login", "Abrechen");
    return true;
    }
    else
    {
    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Register", "Wilkommen auf Orange-Gaming.\nDu kannst dich nun Regestrieren", "Register", "Abrechen");
    return true;
    }
    }
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    switch(dialogid)
    {


    case 0:
    {
    if(!inputtext[0])
    {
    SendClientMessage(playerid, Color_White, "Info: Bitte gebe ein Passwort ein");
    ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, "Login", "Wilkommen auf Orange-Gaming.\nDu kannst dich nun einloggen", "Login", "Abrechen");
    return true;
    }
    if(strcmp(inputtext, mysql_GetString("Spieler", "Passwort", "Name", PlayerName[playerid]), true) == 0)
    {
    SetPVarInt(playerid, "Eingeloggt", 1);
    GivePlayerMoney(playerid, mysql_GetInt("Spieler", "Geld", "Name", PlayerName[playerid]));
    SetPlayerSkin(playerid, mysql_GetInt("Spieler", "Model", "Name", PlayerName[playerid]));
    SetPVarInt(playerid, "Morde", mysql_GetInt("Spieler", "Morde", "Name", PlayerName[playerid]));
    SetPVarInt(playerid, "Tode", mysql_GetInt("Spieler", "Tode", "Name", PlayerName[playerid]));
    SetPVarInt(playerid, "Job", mysql_GetInt("Spieler", "Job", "Name", PlayerName[playerid]));
    SetPVarInt(playerid, "Rang", mysql_GetInt("Spieler", "Rang", "Name", PlayerName[playerid]));
    SetPVarInt(playerid, "Dienst", mysql_GetInt("Spieler", "Dienst", "Name", PlayerName[playerid]));
    SetPVarInt(playerid, "Admin", mysql_GetInt("Spieler", "Admin", "Name", PlayerName[playerid]));
    SetPVarInt(playerid, "Spielzeit", mysql_GetInt("Spieler", "Spielzeit", "Name", PlayerName[playerid]));
    SetPVarInt(playerid, "Levelpoints", mysql_GetInt("Spieler", "Levelpoints", "Name", PlayerName[playerid]));
    SetPVarFloat(playerid, "Achse1", floatstr(mysql_GetFloat("Spieler", "Achse1", "Name", PlayerName[playerid])));//1
    SetPVarFloat(playerid, "Achse2", floatstr(mysql_GetFloat("Spieler", "Achse2", "Name", PlayerName[playerid])));//1
    SetPVarFloat(playerid, "Achse3", floatstr(mysql_GetFloat("Spieler", "Achse3", "Name", PlayerName[playerid])));//1
    SendClientMessage(playerid, Color_Green, "Info: Wilkommen auf Orange-Gaming");
    SpawnPlayer(playerid);
    return true;
    }
    else
    {
    SetPVarInt(playerid, "PWFalsch", GetPVarInt(playerid, "PWFalsch")+1);
    if(GetPVarInt(playerid, "PWFalsch") < Max_Player_Login_Attemps)
    {
    SendClientMessage(playerid, Color_Red, "Info: Solltest du dein Passwort zu oft falsch eingeben wirst du gekickt");
    ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, "Login", "Wilkommen auf Orange-Gaming.\nDu kannst dich nun einloggen", "Login", "Abrechen");
    return true;
    }
    if(GetPVarInt(playerid, "PWFalsch") == Max_Player_Login_Attemps)
    {
    SendClientMessage(playerid, Color_Red, "Info: Du hast dein Passwort zu oft falsch eingegeben du wurdest gekickt");
    Kick(playerid);
    return true;
    }
    }
    }
    case 1:
    {
    if(!inputtext[0])
    {
    SendClientMessage(playerid, Color_Red, "Info: Passwort zu kurz");
    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Register", "Wilkommen auf Orange-Gaming.\nDu kannst dich nun einloggen", "Register", "Abrechen");
    return 1;
    }
    SetPVarInt(playerid, "Eingeloggt", 1);
    CreatePlayerAccount(PlayerName[playerid], inputtext);
    mysql_SetString("Spieler", "Passwort", inputtext, "Name", PlayerName[playerid]);
    SendClientMessage(playerid, Color_Green, "Info: Erfolgreich registriert");
    SpawnPlayer(playerid);
    return true;
    }


    }
    return 1;
    }
    Jetzt Checkaccount
    stock mysql_CheckAccount(sqlplayersname[])
    {
    new query[128], escstr[MAX_PLAYER_NAME];
    mysql_real_escape_string(sqlplayersname, escstr);
    format(query, sizeof(query), "SELECT id FROM Spieler WHERE LOWER(Name) = LOWER('%s') LIMIT 1", escstr);
    mysql_query(query);
    mysql_store_result();
    if (mysql_num_rows()==0)return 0;
    else
    {
    new strid[32];
    new intid;
    mysql_fetch_row(strid);
    intid = strval(strid);
    return intid;
    }
    }
    Hoffe ihr findet den Fehler ;)


    Lg

  • stock AccountExists(playerid)
    {
    new pname[20], query[128];
    GetPlayerName(playerid,pname,sizeof(pname));
    format(query,sizeof(query),"SELECT * FROM accounts WHERE Name = '%s'",pname);
    mysql_query(query);
    mysql_store_result();
    new ergebnis = mysql_num_rows();
    mysql_free_result();
    return ergebnis;
    }
    Ich habs so gelöst, funktioniert bei mir einwandfrei, wenn ein Account vorhanden ist wird != 0 returnt, wenn keiner vorhanden ist wird 0 returnt

  • public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid, 1472.2893,-1627.4072,14.0469);
    ApplyAnimation(playerid, "PED", "SEAT_idle", 10000.0,0,0,0,1,0);
    SetPlayerFacingAngle(playerid,32);
    SetPlayerCameraPos(playerid, 1471.1930,-1624.6537,14.0469);
    SetPlayerCameraLookAt(playerid, 1472.7893,-1627.0072,14.0469);
    if(mysql_CheckAccount(playerid) == 0)
    {
    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Register", "Wilkommen auf Orange-Gaming.\nDu kannst dich nun Regestrieren", "Register", "Abrechen");
    return true;
    }
    else if(mysql_CheckAccount(playerid) == 1)
    {
    ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, "Login", "Wilkommen auf Orange-Gaming.\nDu kannst dich nun einloggen", "Login", "Abrechen");
    return true;
    }
    else if(mysql_CheckAccount(playerid) == 2)
    {
    SendClientmessage(playerid,Color_Red,"Bei der überprüfung des Accounts ist ein Fehler aufgetreten. Bitte melde dich bei einemAdmin.");
    Kick(playerid);
    }
    }
    stock mysql_CheckAccount(playerid)
    {
    new Query[128],name[20];
    GetPlayerName(playerid,name,sizeof(name));
    format(Query, sizeof(Query), "SELECT * FROM `Spieler` WHERE `Name` = '%s'", name);
    mysql_query(Query);
    mysql_store_result();
    if(mysql_num_rows() == 0) return 0; // Account existiert nicht
    if(mysql_num_rows() == 1) return 1;//Account existiert
    else return 2;//Account existiert mehrfach (für Fehlermeldung o.ä)
    }

    The fact is, I am right. And if you think I'm wrong, you are wrong.