MySQL (Installation, Zugriff, Einstellungen, Login & Register Beispiel)

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
  • Nettes und sehr hilfreiches TuT.Vielen Dank 10/10

  • Hallo,
    erstmal Gutest Turoial, hab es selber verwendet, nur stehe ich gerade vor einem Problem.
    Ich hab in einer Datenbank die x,y,z koordinaten für Pickups. Diese müssten bei ongamemodeinit alle geladen werden. nur schaffe ich es nicht, diese zu laden. Ich habe jetzt schon einiges Versucht.
    Nur leider ist bis jetzt nichts daraus geworden. Ich hoffe du/ihr könnt mir helfen.
    Als zusatzinfo:
    Tabellenname: haeuser
    X Koordinaten: x
    Y Koordinaten: y
    Z Koordinaten: z
    Hausids(Automatischer Wert mit dem die Datensätze gefunden werden können): hid


    Bitte Danke
    mfg
    Haidi


    //Edit: Erledigt

    Einmal editiert, zuletzt von Haidi ()

  • Hallöchen Maddin, ich habe gerade bzw. schon was länger her jedoch klappts immer noch nicht mit deinem Login System versucht einen Doppelten Hash zu vergleichen,
    jedoch will das irgendwie nicht :b Ich habe die Abfrage nun so gestaltet.


    if(!strcmp(inputtext, MD5_Hash(MD5_Hash(ReturnPasswort(SpielerName))), true))



    Der Rest wurde fast genauso von dir übernommen :b

  • Wie wird das passwort denn gespeichert in der DB?
    Auf jedenfall musst du die eingabe, also inputtext hashen und dann vergleichen, und nicht das (im normal fall) schon gehaste passwort aus der DB.


    Wenn dein passwort 2 Mal MD5 gehast ist (warum auch immer^^), musst du es so abfragen:
    if(!strcmp(MD5_Hash(MD5_Hash(inputtext)), ReturnPasswort(SpielerName), true))

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • Ja, es wird 2x Gehasht in der Datenbank abgespeichert, jetzt musste ich es halt doppelt abfragen :b Ich probiere es mal jetzt so nach deiner art ^^


    Nunja, es funktioniert leider nicht :/ Ich weiß nicht warum, aber ich bekomme aufjedenfall die Meldung das es nicht mit dem in der Datenbank übereinstimmt, über die else Anweisung.

  • Schönes Tutorial, Maddin ;) Hat mir auch sehr weitergeholfen. 10/10

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Jap, ich bin mir sehr sicher :b Ich werde es mal ebend versuchen^^


    Das sagt mir die Log :b



    [23:10:52] 50F3BFBE3055153C85E8D078A8A5AA2D
    [23:10:52] 229240afdfde814672dc366efdcbeaec


    Der untere Hash ist der richtige :)

    Einmal editiert, zuletzt von xivo ()

  • Ein sehr schönes ausführliches Tutorial ich brauche jedoch kurz eure Hilfe.
    Das mit Datenbank funktioniert alles doch wenn ich auf den Server connecte und ich mein Passwort eingebe kommt
    Server closed the connection und das Passwort ist richtig -.- wie kann ich das beheben habe schon ewig gesucht aber nichts gefunden

  • @ Nochmal zu meiner Frage Maddin :)


    Ich habe das Passwort jetzt einmal Hashen lassen, und ausgeben lassen und es kommt das richtige raus wenn ich das PW einmal hashen würde, jetzt
    habe ich das PW aber 2x direkt hintereinander mit MD5 gehasht, und da kommt halt wieder was falsches raus, weißt du vielleicht wie ich es machen könnte
    das er es 2x hintereinander einzelnt hasht, sprich zuerst


    new wertinputt = strval(inputtext);
    new wert = MD5_Hash(wertinputt);
    wert = Md5_Hash(wert);


    das will halt nicht gehen ;b Deshalb wolle ich fragen, ob du vielleicht ne ahnung hast ^^

  • Hi ich habe gerade mal die Funktion vom Leben benutzen wollen..


    so..


    OnPlayerSpawn
    SpielerInfo[playerid][pHealth] = mysql_GetFloat("accounts", "Health", "Name", SpielerInfo[playerid][pName]);
    SetPlayerHealth(playerid,SpielerInfo[playerid][pHealth]);


    LoadPlayer
    SpielerInfo[playerid][pHealth] = mysql_GetFloat("accounts", "Health", "Name", SpielerInfo[playerid][pName]);


    SavePlayer
    mysql_SetFloat("accounts", "Health", SpielerInfo[playerid][pHealth], "Name", SpielerInfo[playerid][pName]);


    Warning

    Code
    C:\Users\Marcel\Desktop\gta_server\gamemodes\Test.pwn(588) : warning 213: tag mismatch
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    1 Warning.


    Zeile 588
    stock mysql_GetFloat(Table[], Field[], Where[], Is[])
    {
    new query[128], Float:sqlfloat;
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_float(sqlfloat);
    mysql_free_result();
    return sqlfloat; //Zeile 588
    }


    Was Mache ich falsch?


    lg Marci

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen