MySQL Problem

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 liebe Breadfish Community,
    ich habe vor ca. einer Woche angefangen für mich ein bischen Scripten zu lernen und habe anhand von Youtube Tutorials die ersten Schitte auf meinem Server ans laufen gebracht. Nun bin ich an dem Punkt angelangt wo das Login/Register System anfängt womit ich meine Schwierigkeiten habe.


    Unzwar habe ich mit XAMPP und PhPmyAdmin eine Datenbank mit enstprechender Tabelle hinzugefügt und im Script diese nach dem Tutorial miteinander verbunden, sowie einen Text/Commands für das Register/Login System geschrieben. Ich bekomme beim Compilen keine Warnings oder Errors und auch wenn ich den Server starte zeigt er mir an das Das MySQL Plugin geladen wurde. Wenn ich jedoch jetzt auf meinen Server connecte dann erscheint das Registrierungsfenster nicht. Ich dachte erst es liegt vielleicht an meinem Script und habe es mit dem beigelegten Tutorialscript des Erstellers getestet. Jedoch habe ich dort das gleiche Problem.Es wird auch keine Error.log Datei beim Start bzw Connecten auf den Server erstellt. Ich würde mich echt freuen wenn mir jemand weiterhelfen könnte,da ich gerne weiter scripten lernen möchte.


    Mit freundlichen Grüßen XxFraPPoxX

  • public OnUserCheck(playerid)


    //Registrierung
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Wählen Sie ein gewünschtes Passwort aus:","Registrieren","Abbrechen");
    }
    else
    {
    //Login
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Bitte geben Sie Ihr Passwort ein:","Login","Abbrechen");
    }



    public OnPlayerConnect(playerid)
    new name[MAX_PLAYER_NAME],query[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(query,sizeof(query),"SELECT id FROM user WHERE username='%s'",name);
    mysql_function_query(dbhandle,query,true,"OnUserCheck","i",playerid);


    public OnPasswordResponse(playerid)
    {
    new num_fields,num_rows;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(num_rows==1)
    {
    //Passwort richtig
    sInfo[playerid][eingeloggt] = 1;
    sInfo[playerid][level] = cache_get_field_content_int(0,"level",dbhandle);
    }
    else
    {
    //Passwort falsch
    SendClientMessage(playerid,COLOR_RED,"Das von Ihnen eingegebene Passwort ist falsch.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Bitte geben Sie Ihr Passwort ein:","Login","Abbrechen");
    }
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid==DIALOG_LOGIN)
    {
    if(response)
    {
    new name[MAX_PLAYER_NAME],query[128],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>0)
    {
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND password='%s'",name,passwort);
    mysql_function_query(dbhandle,query,true,"OnPasswordResponse","i",playerid);
    }
    else
    {
    //Keine Eingabe
    SendClientMessage(playerid,COLOR_RED,"Gibt bitte dein Passwort ein.");

    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Bitte
    geben Sie Ihr Passwort ein:","Login","Abbrechen");
    }
    }
    else
    {
    Kick(playerid);
    }
    return 1;
    }
    if(dialogid==DIALOG_REGISTER)
    {
    if(response)
    {
    new name[MAX_PLAYER_NAME],query[128],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>3)
    {
    //Registrierungsfunktion
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"INSERT INTO user (username,password) VALUES ('%s','%s') ",name,passwort);
    mysql_function_query(dbhandle,query,false,"","");
    }
    else
    {
    //Kleiner als 4 Zeichen
    SendClientMessage(playerid,COLOR_RED,"Ihr Passwort muss mindestens 4 Zeichen lang sein.");

    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Wählen
    Sie ein gewünschtes Passwort aus:","Registrieren","Abbrechen");
    }
    }
    else
    {
    Kick(playerid);
    }
    return 1;
    }



    So wusste nicht genau was Ihr braucht hoffe Ihr könnt damit was anfangen.

  • public OnUserCheck(playerid)
    {
    new rows,fields;
    cache_get_data(rows,fields,dbhandle);
    if(rows == 0)
    {
    //Registrierung
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Wählen Sie ein gewünschtes Passwort aus:","Registrieren","Abbrechen");
    }
    else
    {
    //Login
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Bitte geben Sie Ihr Passwort ein:","Login","Abbrechen");
    }

  • Mir ist gerade was aufgefallen undzwar wird bei mir nicht nur zusätzlich nach der libmysql.dll Datei gefragt bzw mir gesagt das diese Datei nicht auf meinem Computer vorhanden ist sonder auch das msvcp110.dll und msvcr110.dll nicht vorhanden sind. Bevor ich diese nicht in den GTA Ordner mit rein packe lädt er das Plugin nicht. Kann es vielleicht etwas mit den Datein zu tun haben?

  • Hmm bekomme den gleichen Fehler wieder. Das Programm kann nicht gestartet werden, da MSVCP110.dll auf dem Computer fehlt. Installieren Sie das Programm erneut, um das Problem zu beheben :/
    Und danach zeigt er mir den Runtime Error 19 Script[/gamemode/script.amx]"File or Function is not found" in der Console an obwohl das Script erfolgreich compilet wurde.