MySQL Datenbank / Registrierungsprobleme

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 bin derzeit nach langer Zeit wieder einmal dabei mit SAMP anzufangen zu Scripten. Nun kommen wir mal zum eigentlichen Thema. Ich habe derzeit ein Register / Login System geschrieben was mir derzeit aber ein Problem bereitet. Sobald ich den Spieler in die Datenbank (MySQL) speichern möchte, kriege ich keinen Eintrag.


    Ich habe den ganzen "Query" geprintet der nach meiner Aussage alles richtig ausgibt aber nicht richtig in die Datenbank einträgt. In den Logs kriege ich hierzu auch keine Warnings, Errors oder ähnliches. Lediglich der Eintrag bleibt leer.


    Hier dann einmal der Code der den Eintrag in die Datenbank durchführt:



    new query[2056];
    mysql_format(handle, query, sizeof(query), "INSERT INTO users (name, password,geschlecht,alter) VALUES ('%e', MD5('%e'),'%i','%i')", pInfo[playerid][pName], inputtext,geschlecht,alter);
    mysql_pquery(handle, query, "OnUserRegister", "d", playerid);



    Ich hoffe auf eure Hilfe und bin mir sicher das wir dieses Problem zusammen schnell Lösen können. Bis dahin alles Liebe

  • new query[2056];[*]mysql_format(handle, query, sizeof(query), "INSERT INTO users (name, password) VALUES ('%s', MD5('%s),'%i','%i')", pInfo[playerid][pName], inputtext,geschlecht,alter);[*]mysql_pquery(handle, query, "OnUserRegister", "d", playerid);


    So glaube du musst anstaat %e %s verwenden :D

  • So glaube du musst anstaat %e %s verwenden :D


    Das ist hierbei nicht das Problem. Ausprobiert hatte ich das ganze schon mit %s allerdings funktioniert auch dies nicht. Sobld ich das Alter und das Geschlecht aus dem Code entferne klappt alles. Sobald ich es aber eingebaut habe, speichert er nicht mehr in der Datenbank.


    Dennoch vielen dank für deinen Rat

  • Ich verweise dich nochmals auf meinen Post. Hier ist die Angabe


    [b]INSERT INTO users (name, password,geschlecht,alter) VALUES ('%e', MD5('%e'),'%i','%i')", pInfo[playerid][pName], inputtext,geschlecht,alter); mysql_pquery(handle, query, "OnUserRegister", "d", playerid);[/b]


    PS; Alter wird als Zahl gespeichert

  • new query[2056];[*]mysql_format(handle, query, sizeof(query), "INSERT INTO users (name, password) VALUES ('%s', MD5('%s),'%i','%i')", pInfo[playerid][pName], inputtext,geschlecht,alter);[*]mysql_pquery(handle, query, "OnUserRegister", "d", playerid);


    So glaube du musst anstaat %e %s verwenden :D

    Nein, komplett falsche richtung.
    Es ist sehr sinnvoll sogar %e zu benutzen, wenn man eh mit mysql_formart arbeitet.
    %e funktioniert auch nur soweit ich weis in den neueren MySQL Plugins und bedeutet escape. (Injection Schutz)
    Das ist wahrscheinlich ein Fehler im Query.
    Und ich leg dir echt ans Herz den Gedanken zu überprüfen auf eine andere Verschlüsselung umzusteigen, benutze MD5 seit Jahren nicht mehr..


    -> Probiers mal so <-

  • Klappt. Eine Frage habe ich dazu noch, warum haben wir bei %e noch die Anführungszeichen aber bei %i nicht ?

    Einmal editiert, zuletzt von EntenBrot ()

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