MD5 Hash Passwort

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
  • Versuche es so:


    else if(dialogid == Register)
    {
    if(response == 0)
    {
    SendClientMessage(playerid, COLOR_ERRORTEXT, " Du hast den Vorgang abgebrochen und wurdest automatisch gekickt.");
    TogglePlayerControllable(playerid, 0);
    Kick(playerid);
    }
    if(response == 1)
    {
    if(!strlen(inputtext) || strlen(inputtext) < -1 || strlen(inputtext) > 15 || strlen(inputtext) < 6)
    {
    ShowPlayerDialog(playerid, Register, DIALOG_STYLE_PASSWORD, "Los Santos Roleplay Community: Registrieren", "Bitte gib ein Passwort für deinen Account ein ({FF1E00}mind. 6 Zeichen{A9C4D4}):", "Registrieren", "Abbruch");
    return 1;
    }
    new ForbiddenCharactersExist = 0;
    for(new ac = 0; ac < sizeof(ForbiddenCharacters); ac++)
    {
    if(strfind(inputtext, ForbiddenCharacters[ac], true) != -1)
    {
    ForbiddenCharactersExist = 1;
    break;
    }
    }
    if(strlen(inputtext) > 15 || ForbiddenCharactersExist == 1)
    {
    ShowPlayerDialog(playerid, Register, DIALOG_STYLE_PASSWORD, "Los Santos Roleplay Community: Registrierung", "Dein Passwort muss mindestens 6 und maximal 15 Bustaben haben\nUnd darf nur auch Bustaben von A-Z und Zahlen von 0-9 Bestehen.", "Registrieren", "Verlassen");
    return SendClientMessage(playerid, COLOR_ERRORTEXT, " Dein Passwort darf maximal 10 Zeichen haben und darf nur aus A-Z bzw. a-z und 1-9 inkl. 0 bestehen !");
    }
    OnPlayerRegister(playerid, inputtext);
    ShowPlayerDialog(playerid, Sicherheitscode, DIALOG_STYLE_MSGBOX, "Los Santos Roleplay Community: Login", "Herzlich Willkommen in unserer Community.Du hast dich erfolgreich registriert.\n\nMit einem Klick auf Login kannst du dich einloggen.", "Login", "Verlassen");
    }
    return 1;
    }


    public OnPlayerRegister(playerid, password[])
    {
    StuffInfo[sNeuUser] += 1;
    if(IsPlayerConnected(playerid))
    {
    new string[256],playername[MAX_PLAYER_NAME],passwort[64];
    GetPlayerName(playerid, playername, sizeof(playername));
    mysql_real_escape_string(password, passwort);
    format(string, sizeof(string), "%s", password);
    strmid(PlayerInfo[playerid][pKey], string, 0, strlen(string), 255);
    format(string, sizeof(string), "INSERT INTO `users` (`Name`, `Password`) VALUES ('%s', MD5('%s'))", playername, passwort);
    self_mysql_queryEx(string);
    format(string, sizeof(string), "UPDATE `users` SET `RegisterDatum`='%d' WHERE `Name`='%s'", gettime(), playername);
    self_mysql_queryEx(string);
    //...


    if(CheckPasswort(playerid, inputtext) == 1) // Wir holen uns das Passwort aus der MySQL Datenbank und überprüfen es mit dem angegebenen passwort.
    {
    if(NotJoin == 1)
    {
    format(string, sizeof(string), "Du kannst dich erst nach %d Sekunden wieder einloggen.\n\nBitte warte eine Weile und gibt dann dein Accountpasswort ein.",OffPickup[StepID][OffZeit]);
    ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "Login", string,"Login","Abbruch");
    return 1;
    }
    strmid(PlayerInfo[playerid][pKey], inputtext, 0, strlen(inputtext), 255);
    OnPlayerLogin(playerid); //Der Spieler wird "geladen", speich es werden seine Daten aus der Datenbank geholt und in variablen gespeichert um diese im Skript zu verwenden.
    return 1;
    }
    else
    {
    ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "Los Santos Roleplay Community: Passwort Falsch", "Das eingegebene Passwort ist Falsch, bitte versuche es erneut.","Login","Verlassen");
    return 1;
    }



    stock CheckPasswort(playerid,password[])
    {
    new query[256],sendername[MAX_PLAYER_NAME],passwort[64];
    GetPlayerName(playerid,sendername,sizeof(sendername));
    mysql_real_escape_string(password, passwort);
    mysql_real_escape_string(sendername, sendername);
    format(query,sizeof(query),"SELECT `Password` FROM `users` WHERE `Name` = '%s' AND `Password` = MD5('%s')",sendername,passwort);
    self_mysql_queryEx(query);
    mysql_store_result();
    if(mysql_num_rows())
    {
    mysql_free_result();
    return true;
    }
    else
    {
    mysql_free_result();
    return false;
    }
    }


    Beachte, dass du das "Password" Feld in der Tabelle "users" als VARCHAR Feld anlegen musst, mit 33 Zeichen (sicherheitshalber eins mehr, da EOS).


    Sollte es weiterhin nicht gehen, poste bitte was im MySQL Log steht, und einen Screenshot der Daten in der Datenbank, nachdem du dich registriert hast.

  • Immernoch fehlerhaft...


    Db:



    Ich nutze mysql R5