Spieler speichern nicht in Mysql?

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
  • was genau muss ich vom Register weg machen?

  • @Jeffry und @German_ScripterHD



    So oder?

  • @Jeffry



    Habe es jetzt so:

  • Warum ersetzt du beim Login das SELECT jedes mal mit einem INSERT? Das macht doch keinen Sinn.


    Nur beim LOGIN:
    format(query,sizeof(query),"INSERT INTO user (username, passwort, level) VALUES ('%s', '%s', '1')",name,passwort);
    zu:
    format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND passwort='%s'",name,passwort);

  • Beitrag von Markuslobicher ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Fehler noch drin ().
  • @Jeffry
    So sieht mein Code Aus


    Login/Register:


    MYSQL-Log beim Registrieren:

    Loginprozess nach dem erneuten verbiden:


  • Beim DIALOG_REGISTER, nur dort, nirgends anders (1 mal!):
    format(query,sizeof(query),"INSERT INTO user (username, passwort, level) VALUES ('%s', MD5('%s'), '1')",name,passwort);
    zu:
    format(query,sizeof(query),"INSERT INTO user (username, passwort, level) VALUES ('%s', '%s', '1')",name,passwort);

  • So habe es so gemacht wie du es gesagt hast @Jeffry


    Passwort wird nicht in der MySqL Tabelle abgespeichert Password. Nach dem man sich Registriert hat.



    Mysql-Log:


    Login/Register:


  • So habe es nun so gemacht wie du @Jeffry


    So sieht alles nun aus:


    Dennoch kann ich mich nicht einloggen mit dem Passwort


    Login/Register:




    Mysql-log:(Beim Registrieren):


    Beim erneuten Login:


  • Jetzt hast du das MD5 da wieder stehen...


    Nur beim DIALOG_LOGIN:
    format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND passwort=MD5('%s')",name,passwort);
    Zu
    format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND passwort='%s'",name,passwort);

  • @Jeffry


    Ich möchte es ja so haben das die Passworter verschlüsselt sind


    So habe ich es jetzt:
    Pawncode:


    MYSQL-Log beim Registerieren:

    Neuer einlogg:


  • Laut Log funktioniert das ja jetzt so.
    Dann versuche es jetzt bitte so:
    if(dialogid==DIALOG_LOGIN)
    {
    if(response)
    {
    new name[MAX_PLAYER_NAME],query[256],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 passwort=MD5('%s')",name,passwort);
    mysql_function_query(dbhandle,query,true,"OnPasswordResponse","i",playerid);
    }
    else
    {
    //Keine Eingabe
    SendClientMessage(playerid,grün,"Gibt bitte dein Passwort ein.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Anmelden","Abbrechen");
    }
    }
    else
    {
    Kick(playerid);
    }
    }
    if(dialogid==DIALOG_REGISTER)
    {
    if(response)
    {
    new name[MAX_PLAYER_NAME],query[256],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>5)
    {
    //Registrierungsfunktion
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"INSERT INTO user (username, passwort, level) VALUES ('%s', MD5('%s'), '1')",name,passwort);
    mysql_function_query(dbhandle,query,false,"","d",playerid);
    sInfo[playerid][level]=1;
    SetPlayerScore(playerid,sInfo[playerid][level]);
    }
    else
    {
    //Kleiner als 4 Zeichen
    SendClientMessage(playerid,helblau,"Dein Passwort muss mindestens 6 Zeichen lang sein.");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Account Erstellung","Gebe bitte nun dein gewünschtes Passwort ein!","Erstellen","Abbrechen");
    }
    }
    else
    {
    Kick(playerid);
    }
    }


    Kopiere und ersetze den Code bitte genau so.