[jTuT] MySQL R41-4 (Installation, XAMPP, Verwendung, Bedienung & Registrations-System)

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Es gibt Neuigkeiten! Ab sofort könnt ihr dem Donators Club auf Lebenszeit beitreten.
    Weitere Infos im Thema Donator's Club ab heute wieder verfügbar!

    • Ich hab das Problem, dass wenn ich mich einloggen möchte das Passwort nicht verschlüsselt wird. (Passwort wird in Klartext angezeigt)

      Print:

      SQL-Abfrage

      1. SELECT * FROM accounts WHERE Name = 'Swarlos' AND Passwort = MD5(MD5('Passwort'))
      Das ist der Quellcode:

      Quellcode

      1. new passwort[50];
      2. format(passwort, 50, "%s", inputtext);
      3. mysql_escape_string(passwort, passwort);
      4. mysql_format(Handle, SQL, sizeof(SQL), "SELECT * FROM accounts WHERE Name = '%e' AND Passwort = MD5(MD5('%s'))", SpielerInfo[playerid][pName], passwort);
      5. printf("%s", SQL);
      Auch wenn ich alles bis Zeile 4 weglasse, dann passiert das selbe.

      InternetInk aka Benjamin schrieb:

      Der ist höchstens eine Gefahr für sich selbst oder für die Brieftasche der Eltern...
    • Kannst du den String des MD5 Wertes aus der Datenbank bitte mal posten? Gebe als Passwort bei der Registrierung Test oder Passwort ein.


      malE schrieb:

      Der Download-Button funktioniert anscheinend nicht mehr.
      Du kannst die Daten aus dem Anhang herunterladen. Der Button verweist nur dahin, ist aber durch die Umstellung der Domain nicht mehr aktuell. Ich werde das am Wochenende in allen meinen Threads anpassen.
    • Also ich hab als Klartext "passwort" eingegeben. In der DB wurde das gespeichert: d6707bc3217f7ad5277cc0b8f0adbcb5
      nun hab ich mal auf einer MD5 seite passwort 2x verschlüsselt und genau das selbe herausbekomme, also liegt das am Login :/

      Das ist der Code der bei OnDialog... aufgerufen wird:

      Quellcode

      1. if(!response) return Kick(playerid);
      2. new passwort[50];
      3. format(passwort, 50, "%s", inputtext);
      4. mysql_escape_string(passwort, passwort);
      5. mysql_format(Handle, SQL, sizeof(SQL), "SELECT * FROM accounts WHERE Name = '%e' AND Passwort = MD5(MD5('%s'))", SpielerInfo[playerid][pName], passwort);
      6. printf("%s", SQL);
      7. LoginCheckedUser(playerid);
      8. forward LoginCheckedUser(playerid);
      9. public LoginCheckedUser(playerid)
      10. {
      11. if(cache_get_row_count() == 0)
      12. {
      13. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Einloggen", "Das Angegebene Passwort war Falsch\nBitte gebe dein Passwort ein\n"COLOR_RED_HTML"Beachte: "COLOR_ORANGE_HTML"Wir werden nie nach Ihren Passwort fragen.", "Einloggen", "Verlassen");
      14. }
      15. else
      16. {
      17. //Acc wird geladen.
      18. }
      19. }
      Alles anzeigen

      InternetInk aka Benjamin schrieb:

      Der ist höchstens eine Gefahr für sich selbst oder für die Brieftasche der Eltern...

    • Man muss sagen das es eines der ersten Tutorials ist die man auf SA-MP.de sieht das großzügig beschrieben ist.
      Ich persönlich habe es zwar nicht benötigt, fand aber mal die Materie interessant und wie du die Tutorials schreibst.

      Weiter mit der guten Arbeit, mir würden die ganzen Leute im Forum schon den Kopf zerbrechen, aber du bleibst dran! ;)
    • Hallo Leute,
      trotz das Jeffry auf Reisen ist. Kann mir jemand eventuell helfen?
      Bei mir speichert es absolut keine Daten.
      Ich vermute jedoch das es an SaveUserStats liegt.
      Kann mir hier jemand helfen?

      PAWN-Quellcode

      1. stock SaveUserStats(playerid)
      2. {
      3. if(!PlayerInfo[playerid][pLoggedIn]) return 1;
      4. new query[256];
      5. mysql_format(handle, query, sizeof(query), "UPDATE users SET level = '%d', language = '%i',money = '%i', kills = '%i', deaths = '%i' WHERE id = '%d'",
      6. PlayerInfo[playerid][pLevel],PlayerInfo[playerid][planguage],GetPlayerMoney(playerid), PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths], PlayerInfo[playerid][p_id]);
      7. return 1;
      8. }
    • Hi, danke für die schnelle Rückantwort.
      Also ja, das hat gefehlt, leider ohne Erfolg.

      Habe mal die Log eingeschaltet:


      [11:34:18] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
      [11:34:18] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
      [11:34:18] [DEBUG] CMySQLConnection::Connect - connection was successful
      [11:34:18] [DEBUG] CMySQLConnection::Connect - connection was successful
      [11:34:18] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
      [11:34:18] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
      [11:34:18] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
      [11:34:37] [DEBUG] mysql_format - connection: 1, len: 128, format: "SELECT id FROM users WHERE name = '%e'"
      [11:34:37] [DEBUG] mysql_pquery - connection: 1, query: "SELECT id FROM users WHERE name = 'pinguin'", callback: "OnUserCheck", format: "d"
      [11:34:37] [DEBUG] CMySQLQuery::Execute[OnUserCheck] - starting query execution
      [11:34:37] [DEBUG] CMySQLQuery::Execute[OnUserCheck] - query was successfully executed within 0.393 milliseconds
      [11:34:37] [DEBUG] CMySQLResult::CMySQLResult() - constructor called
      [11:34:37] [DEBUG] Calling callback "OnUserCheck"..
      [11:34:37] [DEBUG] cache_get_row_count - connection: 1
      [11:34:37] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called
      [11:34:41] [DEBUG] mysql_format - connection: 1, len: 256, format: "INSERT INTO users (name, password) VALUES ('%e', MD5('%e'))"
      [11:34:41] [DEBUG] mysql_pquery - connection: 1, query: "INSERT INTO users (name, password) VALUES ('pinguin', MD5('lol')", callback: "OnUserRegister", format: "d"
      [11:34:41] [DEBUG] CMySQLQuery::Execute[OnUserRegister] - starting query execution
      [11:34:41] [DEBUG] CMySQLQuery::Execute[OnUserRegister] - query was successfully executed within 36.794 milliseconds
      [11:34:41] [DEBUG] CMySQLResult::CMySQLResult() - constructor called
      [11:34:41] [DEBUG] Calling callback "OnUserRegister"..
      [11:34:41] [DEBUG] cache_insert_id - connection: 1
      [11:34:41] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called


      //edit:
      Habe den Fehler nun gefunden. Ich glaube im Tutorial selbst wurde dies auch nicht gemacht.
      Der Spieler wird nach dem Registrieren nicht eingeloggt. Somit wird er erst garnicht beim Verlassen gespeichert. Trotzdem danke für die Hilfe :)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von RezZ ()

    • Was man vielleicht noch sagen sollte ist, dass die Verschlüsselung hier von md5 nichts bringt, da kein Salt verwendet wird.

      Durch Rainbowtables kann man hier ganz einfach das Passwort filten, welches verwendet wurde und dann sieht man das:

      098f6bcd4621d373cade4e832627b4f6 = test

      ist :D

      Also für alle die hashen wollen und nicht wollen, dass man direkt das Passwort hat, mal nach "Salt" googeln und halt einfach das Passwort mit Salt hashen lassen ;)

      mfg. :thumbup:


      Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/