Mysql Checkaccount

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
  • Hey, ich habe das Problem, wenn ich die Funktion Mysql_CheckAccount nutze, dann stürzt mein Server ab...
    Woran kann das liegen?


    Funktion:

    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;
    }

  • tabelle "accounts" erstellt?

    [tabmenu][tab='Angebote','http://cdn3.iconfinder.com/data/icons/glyph/227/Tag-48.png']

    + Die Preise liegen bei 5-100+€ Ablauf:
    + Entweder ihr addet mich in Skype (PN vorher Schreiben) oder Ihr schreibt eine PN an mich (Betreff - Euer Wunsch z.B. Filterscript)
    + So nun schreibt ihr mir was ihr alles in dem Script haben wollt ich werd euch dann sagen ob ich es hinbekomme.
    + Dann machen wir ein groben Preis aus. Ich werde das Script erstellen und es zusammen mit dem Kunden Testen.



    [tab='Kontakt','http://cdn3.iconfinder.com/data/icons/line/36/person_add-48.png']
    edmix23

    + Bitte beim Adden angeben wer ihr seit oder per PN bescheid sagen!
    [tab='Zahlungs Methoden','https://cdn3.iconfinder.com/data/icons/line/36/check_money-32.png']
    +Paypal!
    +Direkte Banküberweisung

  • debugge das ganze doch mal & schau was die debug_log ausgibt


    Was soll ich den da debugen? :/


    Sehe dort keinen Fehler.
    Zeig mal deine Datenbank und den Bereich, wo diese Funktion aufgerufen wird.


    Gruß


    Code:

    switch(mysql_CheckAccount(playerid))
    {
    case 0: ShowPlayerDialog(playerid,DIALOG_REG,DIALOG_STYLE_MSGBOX,"Register","test","Erstellen","Abbrechen");
    case 1: ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","test","Login","Abbrechen");
    }


    tabelle "accounts" erstellt?


    Ja die DB auch... Und ich habe auch eine Verbindung zu DB

  • was zum ...


    if(mysql_CheckAccount(playerid))
    {
    //account exestiert
    }
    else
    {
    //nix da
    }


    Wozu dann bitte switch und case?
    Lohnt sich nicht
    Außerdem würd ich den "stock" so umschreiben
    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' LIMIT 1;", Name);
    mysql_query(Query);
    mysql_store_result();
    count = mysql_num_rows();
    mysql_free_result();
    return ((!count)?(false):(true));
    }

    All in all it's just another brick in the wall


  • Wozu dann bitte switch und case?
    Lohnt sich nicht
    Außerdem würd ich den "stock" so umschreiben


    Er stürzt trotzdem nach 9 Sekunden ab, wenn ich connecte. Die Abfrage wird nähmlich nach 9 Sekunden gemacht.
    Ich bin langsam am verzweifeln... Seit dem ich mein GF Edit auf Mysql umgeschrieben habe buggt das so. Es spawnen auch keine
    Fahrzeuge und es werden keine Textdraws geladen. Hat das einen zusammenhang?

  • Je nachdem wie du es gespeichert / geladen hast.


    Mach mal das crashdetect plugin rein, kompilier das Script mit dem -d3 Parameter und starte den Server.
    Dann schreibst du mal die Serverlog hier rein.


    Bist du dir sicher dass die Abfraeg 9 Sekunden dauert?
    Ist mysql server online, mysql_connect aufgerufen worden usw?


    Gruß

    ik bin der vito c:

  • Serverlog:

    Spoiler anzeigen


    ----------
    Loaded log file: "server_log.txt".
    ----------

    Spoiler anzeigen
    SA-MP Dedicated Server
    ----------------------
    v0.3x, (C)2005-2013 SA-MP Team

    Spoiler anzeigen
    [04:11:58]
    [04:11:58] Server Plugins
    [04:11:58] --------------
    [04:11:58] Loading plugin: mysql.so
    [04:11:58] SA:MP MySQL Plugin v2.1.1 Loaded.
    [04:11:58] [MySQL] Thread running. Threadsafe: Yes.
    [04:11:58] Loaded.
    [04:11:58] Loading plugin: streamer.so
    [04:11:58]

    Spoiler anzeigen
    *** Streamer Plugin v2.6.1 by Incognito loaded ***

    Spoiler anzeigen
    [04:11:58] Loaded.
    [04:11:58] Loading plugin: nativechecker.so
    [04:11:58] Loaded.
    [04:11:58] Loading plugin: sscanf.so
    [04:11:58]

    Spoiler anzeigen
    [04:11:58] ===============================

    Spoiler anzeigen
    [04:11:58] sscanf plugin loaded.

    Spoiler anzeigen
    [04:11:58] Version: 2.8.1

    Spoiler anzeigen
    [04:11:58] (c) 2012 Alex "Y_Less" Cole

    Spoiler anzeigen
    [04:11:58] ===============================

    Spoiler anzeigen
    [04:11:58] Loaded.
    [04:11:58] Loading plugin: crashdetect.so
    [04:11:58] crashdetect v4.9 is OK.
    [04:11:58] Loaded.
    [04:11:58] Loaded 5 plugins.

    Spoiler anzeigen
    [04:11:58]
    [04:11:58] Filterscripts
    [04:11:58] ---------------
    [04:11:58] Loaded 0 filterscripts.

    Spoiler anzeigen
    [04:11:58] [debug] Run time error 5: "Invalid memory access"
    [04:11:58] [debug] AMX backtrace:
    [04:11:58] [debug] #0 000097d8 in public Encrypt (string[]=@0x00000000 "%s") at Mysql_Lor.p:3035
    [04:11:58] [debug] #1 0006b008 in public OnGameModeInit () at Mysql_Lor.p:10791
    [04:11:58] _______________________________________
    [04:11:58] Das Script wurde Vollst�ndig geladen!
    [04:11:58] German Reallife: LS/SF/LV
    [04:11:58] _______________________________________
    [04:11:58]
    [04:11:58] Number of vehicle models: 0


    Und ich weis aber leider nicht wie man beim Strickenkid Plugin Debug anmacht, weil es gibt da kein mysql_debug.
    Und was ist -dx wenn ich fragen darf? Ich hoffe ich könnt mir helfen.

  • Zeile 10791:
    LoadTanke();


    Stock:
    Function LoadTanke()
    {
    new arrCoords[16][64];
    new strFromFile2[256];
    new File: file = fopen("fuelstations.cfg", io_read);
    if (file)
    {
    new idx;
    while (idx < sizeof(TankeInfo))
    {
    fread(file, strFromFile2);
    split(strFromFile2, arrCoords, '|');
    TankeInfo[idx][tOwned] = strval(arrCoords[0]);
    strmid(TankeInfo[idx][tOwner], arrCoords[1], 0, strlen(arrCoords[1]), 255);
    strmid(TankeInfo[idx][tMessage], arrCoords[2], 0, strlen(arrCoords[2]), 255);
    strmid(TankeInfo[idx][tExtortion], arrCoords[3], 0, strlen(arrCoords[3]), 255);
    TankeInfo[idx][tEntranceX] = floatstr(arrCoords[4]);
    TankeInfo[idx][tEntranceY] = floatstr(arrCoords[5]);
    TankeInfo[idx][tEntranceZ] = floatstr(arrCoords[6]);
    TankeInfo[idx][tLevelNeeded] = strval(arrCoords[7]);
    TankeInfo[idx][tBuyPrice] = strval(arrCoords[8]);
    TankeInfo[idx][tEntranceCost] = strval(arrCoords[9]);
    TankeInfo[idx][tTill] = strval(arrCoords[10]);
    TankeInfo[idx][tLocked] = strval(arrCoords[11]);
    TankeInfo[idx][tInterior] = strval(arrCoords[12]);
    TankeInfo[idx][tProducts] = strval(arrCoords[13]);
    TankeInfo[idx][tMaxProducts] = strval(arrCoords[14]);
    TankeInfo[idx][tPriceProd] = strval(arrCoords[15]);
    idx++;
    }
    fclose(file);
    }
    return 1;
    }


    Zeile 3035:

    Function Encrypt(string[])
    {
    for(new x=0; x < strlen(string); x++)
    {
    string[x] += (3^x) * (x % 15);
    if(string[x] > (0xff))
    {
    string[x] -= 256;
    }
    }
    return 1;
    }


    @K3V1N
    Habe die Zeile auskommentiert, jetzt Fahrzeuge geladen und die Textdraws angezeigt.
    Jetzt kommt das in der Console:
    04:22:03] [debug] Server crashed while executing Mysql_Lor.amx
    [04:22:03] [debug] AMX backtrace:
    [04:22:03] [debug] #0 native mysql_real_escape_string () [b76f31a0] from mysql.so
    [04:22:03] [debug] #1 0029084c in mysql_CheckAccount (playerid=0) at Mysql_Lor.p:54432
    [04:22:03] [debug] #2 000514d8 in public PlayerLoginDialog (playerid=0) at Mysql_Lor.p:8744
    [04:22:03] [debug] System backtrace:
    [04:22:03] [debug] #0 b692335b in _ZN10StackTraceC1EPv () from plugins/crashdetect.so
    [04:22:03] [debug] #1 b691c389 in _ZN11crashdetect20PrintSystemBacktraceEPv () from plugins/crashdetect.so
    [04:22:03] [debug] #2 b691e8ed in _ZN11crashdetect11OnExceptionEPv () from plugins/crashdetect.so
    [04:22:03] [debug] #3 b6922e68 in ?? () from plugins/crashdetect.so
    [04:22:03] [debug] #4 b76fb600 in ?? ()
    [04:22:03] [debug] #5 b76efa2c in _Z5ErrorP5MySQLPKci () from plugins/mysql.so
    [04:22:03] [debug] #6 b76f320e in _ZN7Natives26n_mysql_real_escape_stringEP6tagAMXPi () from plugins/mysql.so
    [04:22:03] [debug] #7 08093c94 in ?? () from ./samp2452_633
    [04:22:03] [debug] #8 b691eea7 in _ZN11crashdetect13DoAmxCallbackEiPiS0_ () from plugins/crashdetect.so
    [04:22:03] [debug] #9 b692141e in ?? () from plugins/crashdetect.so
    [04:22:03] [debug] #10 b692506e in amx_Exec () from plugins/crashdetect.so
    [04:22:03] [debug] #11 b691edab in _ZN11crashdetect9DoAmxExecEPii () from plugins/crashdetect.so
    [04:22:03] [debug] #12 b6921457 in ?? () from plugins/crashdetect.so
    [04:22:03] [debug] #13 080dc025 in ?? () from ./samp2452_633
    [04:22:03] [debug] #14 080b5c7b in ?? () from ./samp2452_633
    [04:22:03] [debug] #15 080b1453 in ?? () from ./samp2452_633
    [04:22:03] [debug] #16 b7468ca6 in __libc_start_main () from /lib32/libc.so.6
    [04:22:03] [debug] #17 0804b521 in ?? () from ./samp2452_633


    PS: Bin erstmal pennen, wäre nett wenn ihr irgendwie helfen könntet.

    3 Mal editiert, zuletzt von xFreeze ()