MySQL - kommischer Bug - bitte helfen

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
  • Mahlzeit Community :)
    Wenn ich es auf dem Windows Server teste, klappt alles. Wenn ich es aber auf dem Linux Server klatsche, kommt immer Login obwohl der Account nichtmal in der Datenbank ist.


    Info: Ich benutze das R5 Plugin von BlueG auf den 0.3e Server.


    Code:
    public OnPlayerConnect(playerid)
    {
    new string[256], name[MAX_PLAYER_NAME], r_name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof name);
    mysql_real_escape_string(name, r_name);
    format(string, sizeof string, "SELECT * FROM `Spieler` WHERE `User` ='%s'", r_name);
    mysql_query(string);
    mysql_store_result();
    if(mysql_num_rows())
    {
    // LOGIN
    mysql_fetch_row_format(string, "|");
    sscanf(string, "e<p<|>is[25]s[20]iiiii>", sSpieler[playerid]); // bearbeiten
    mysql_free_result();
    new dialog[300];
    strcat(dialog, "Willkommen auf dem Stunt And Dm Server\n", 300);
    strcat(dialog, "Du musst dich Einloggen um Spielen zu können!", 300);
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "!Welcome Back!", dialog, "Login", "Cancel");
    }
    else
    {
    // REGISTER
    mysql_free_result();
    new dialog[300];
    strcat(dialog, "Willkommen auf dem Stunt And Dm Server\n", 300);
    strcat(dialog, "Du musst dich Regestrieren um Spielen zu können!", 300);
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Wilkommen", dialog, "Register", "Cancel");
    }
    }


    Ps: Datenbanken sind richtig und die Debug Datei spuckt auch keine Fehlers oder sonstiges aus.
    Connecten tut er auch :)


    Hoffe es kann mir wer helfen,


    MFG: R3DSty3e

  • Ich hab es jetzt so


    (Tut von Maddin, vom Sinn her das selbe, nur anders strukturiert)

    if(mysql_CheckAccount(playerid) == 1)
    {
    //Account existiert
    }


    stock mysql_CheckAccount(playerid)
    {
    new Query[128],Name[MAX_PLAYER_NAME],count;
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    mysql_real_escape_string(Name, Name);
    format(Query, sizeof(Query), "SELECT * FROM `accounts` WHERE `Name` = '%s'", Name);
    mysql_query(Query);
    mysql_store_result();
    count = mysql_num_rows();
    mysql_free_result();
    return count;
    }
    und bei mir klappt eigentlich alles


    haste auch wirklich die richtigen Daten eingegeben?

  • Jo nur mit dem Tut von Maddin kann ich nix Anfangen. Es ist einfach nur das Problem das immer kommt das ich einen Account habe, dabei in der Datenbank kein Account mit dem User existiert!


    //EDIT: Connection war tot und es konnte nicht funktionieren :)
    Nächstes Prob. Register Dialog will nichts machen:
    case DIALOG_REGISTER:
    {
    if(!response)
    {
    Kick(playerid);
    }
    else
    {
    if(!strlen(inputtext) || strlen(inputtext) >= 21)
    {
    Kick(playerid);
    }
    else
    {
    printf("");
    new query[500], name[25], escname[25], pip[25];
    GetPlayerName(playerid, name, sizeof name);
    mysql_real_escape_string(name, escname);
    new passwort[20];
    mysql_real_escape_string(inputtext, passwort);
    format(query, sizeof query, "INSERT INTO Spieler (Passwort,User,Adminlevel) VALUES ('%s','%s',0)",passwort,escname);
    mysql_query(query);
    GameTextForPlayer(playerid, "~g~Endlich hat es geklappt!!", 5000, 3);
    Login[playerid] = true;
    }
    }
    }

    Einmal editiert, zuletzt von RedStyle ()