MySQL <> nimmt alle Passwörter

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,
    ich habe ein MySQL Script wo grad die Einlogfunktion nicht richtig will. Egal was ich eingebe Password = richtig.
    Ich habe alles probiert jedoch finde ich kein fehler. Kann da mal einer kur drübeschauen. Mein Kopf brennt grad :D
    Ich habe die PW´s per Standart MD5 verschlüsseln lassen.




    Schonmal danke für die Hilfe

    mfg
    Ali ;)

  • format(query, 128, "SELECT `md5('Password')` FROM `Accounts` WHERE `Name` = '%s'", Name);
    Das würde wenn überhaupt den String Password mit md5 verschlüsseln.


    format(query, 128, "SELECT md5(`Password`) FROM `Accounts` WHERE `Name` = '%s'", Name);
    So würde es funktionieren. Allerdings müsstest du inputtext dann noch mit md5 verschlüsseln:

    Zitat

    if(!strcmp(inputtext, mysql_ReturnPasswort(SpielerName), true)) // <-- inputtext ist nicht mit md5 verschlüsselt,der Rückgabewert von mysql_ResurnPassword allerdings schon


    Wieso lässt du nicht einfach MySQL für dich prüfen,ob das korrekte Passwort eingegeben wurde ?
    stock mysql_isUserPassword(Name[],Password[])
    {
    new query[130], rows;
    mysql_real_escape_string(Name, Name);
    format(query, sizeof(query) , "SELECT * FROM `Accounts` WHERE `Name` = '%s' AND `Password` = md5('%s') LIMIT 1;", Name,Password);
    mysql_query(query);
    mysql_store_result();
    rows = mysql_num_rows();
    mysql_free_result();
    return rows ;
    }
    Damit könntest es direkt abfragen. Wenn mysql_isUserPassword 0 ist,ist es das falsche Passwort.