MySQL|Antimultiaccount

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!
    Und zwar habe ich ein kleines AMACC System erstellt, dies weißt aber noch einen kleinen MySQL Fehler auf und ist deswegen nicht Funktionstüchtig.


    PAWN Quellcode:
    @Checkuser(playerid) //Usercheck
    {
    if(cache_get_row_count(dbhandle) == 1)
    {
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, ""SERVERTAG" - Anmeldung", "{FFFFFF}Hallo und Herzlich auf dem {FFA000}"SERVERTAG" Comunity Server{FFFFFF}\n\nDu hast hier bereits ein Benutzerkonto. Melde dich bitte mit deinem Kennwort an!\n\nViel Spaß noch auf dem {FFA000}"SERVERTAG" Comunity Server{FFFFFF}.", "Anmelden", "Verlassen");
    }
    else
    {
    new query[128];
    mysql_format(dbhandle,query,sizeof query,"SELECT * FROM `xpr.benutzerkonten` WHERE `Benutzerip`='%e'",getPlayerIP(playerid));
    mysql_pquery(dbhandle,query,"@Checkmacca","i",playerid);
    }
    return 1;
    }


    @Checkmacc(playerid,acca)
    {
    new maxmacc=cache_get_field_content_int(0,"maxmacc",dbhandle);
    printf("%i,%i",maxmacc,acca);
    if(acca>=maxmacc||!cache_get_row_count(dbhandle)){
    ShowPlayerDialog(playerid,DIALOG_MACC_TRUE,DIALOG_STYLE_MSGBOX,"{FFA000}"SERVERTAG" Comunity Server{FFFFFF}","{FFFFFF}Auf dem {FFA000}"SERVERTAG" Comunity Server{FFFFFF} werden keine unangemeldeten Multiaccounts tolleriert.\nFalls dies ein Fehler sein sollte melde dich bei einem Supporter!","Schließen","");
    return Kick(playerid);
    }
    ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, ""SERVERTAG" - Registrierung", "{FFFFFF}Hallo und Herzlich auf dem {FFA000}"SERVERTAG" Comunity Server{FFFFFF}\n\nDu besitzt hier noch kein Benutzerkonto. Registriere dich bitte mit einem Kennwort!\n\nViel Spaß noch auf dem {FFA000}"SERVERTAG" Comunity Server{FFFFFF}.", "Weiter", "Verlassen");
    return 1;
    }
    @Checkmacca(playerid)
    {
    new query[128];
    mysql_format(dbhandle,query,sizeof query,"SELECT * FROM `xpr.macc` WHERE `IP`='%e' AND `active`=1",getPlayerIP(playerid));
    mysql_pquery(dbhandle,query,"@Checkmacc","ii",playerid,cache_get_row_count(dbhandle));
    }


    MySQL Fehler:

    SQL
    [20:28:26] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('0')
    [20:28:26] [ERROR] cache_get_field_content_int - invalid datatype
    [20:39:53] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('0')
    [20:39:53] [ERROR] cache_get_field_content_int - invalid datatype


    Datenbank:


    Man sollte eigentlich wie es da steht, 99 Accounts unter der IP "127.0.0.1" erstellen können!


    mfg :thumbup:

  • Punkt 1:
    Gebe mal die Query aus.


    Punkt 2:
    Mach %e zu %s (kenne %e nicht)


    Punkt 3:
    Poste das ergebniss.


    Code
    [21:11:52] checkuser: SELECT * FROM `xpr.benutzerkonten` WHERE `Benutzerip`='25.120.88.48'
    [21:11:52] Checkmacca: SELECT * FROM `xpr.macc` WHERE `IP`='25.120.88.48' AND `active`=1


    SQL
    [21:08:35] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('0')
    [21:08:35] [ERROR] cache_get_field_content_int - invalid datatype


    %e ist in der r39-2 Version enthalten, es ist nur mit mysql_format anwendbar... %e=string automatisch escaped


    mfg :thumbup: