MySQL Abfrage

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 gerade dabei ein Login-System für MySQL in PAWN zu schreiben, habe allerdings ein kleines Problem damit. Ich habe in meiner MySQL Tabelle ein Feld namens users erstellt, so wie ich es brauche. Dort habe ich Testdaten mit dem Usernamen "Padarom" eingetragen. Das Passwort habe ich nicht verschlüsselt. Als ich das ganze auf meinem Server ausprobiert habe und das Passwort eingegeben habe kam die Nachricht ich hätte mich erfolgreich eingeloggt. Anderes Passwort benutzt, auch die Nachricht. Woran könnte das liegen? Außerdem würde ich gerne wissen wie ich überprüfen kann ob ein Username in dem MySQL-Feld existiert, und falls er nicht existiert ihn automatisch zu kicken?


    - Das einloggen beinhaltet derzeit nur die Abfrage und keine weiteren Dinge.
    dcmd_einloggen(playerid, params[])
    {
    new id;
    if (strlen(params))
    {
    id = strval(params);
    new name[MAX_PLAYER_NAME], query[256];
    GetPlayerName(playerid, name, sizeof(name));
    format(query,sizeof(query),"SELECT `passwort` FROM `users` WHERE `username` = '%s'",name);
    mysql_query(query);
    if(id == mysql_store_result())
    {
    SendClientMessage(playerid,ROT,"Du wurdest erfolgreich eingeloggt!");
    }
    else SendClientMessage(playerid,ROT,"Das Passwort ist falsch!");
    }
    }


    Mit freundlichen Grüßen
    Padarom

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

    3 Mal editiert, zuletzt von Padarom ()

  • Du musst es ungefähr so machen:



    format(query, sizeof(query), "SELECT * FROM `users` WHERE `name` = '%s'", pname2);
    samp_mysql_query(query);
    samp_mysql_store_result();
    samp_mysql_fetch_row(line);


    new passwd[32];
    samp_mysql_get_field("Passwort", passwd);


    if(strcmp(string, passwd, true) == 0)....


  • samp_mysql_fetch_row(line);
    if(strcmp(string, passwd, true) == 0)....

    line und string sind undefiniert. Ich nutze das MySQL Plugin von G-sTyLeZzZ (hier & hier).
    Ich probiere nochmal ein paar Dinge aus.
    Bleibt allerdings immernoch die Frage nach der Abfrage ob der Spieler in der Tabelle vorhanden ist.


    Mit freundlichen Grüßen
    Padarom

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

    2 Mal editiert, zuletzt von Padarom ()

  • Nja ist ja keine große Hürde sone Abfrage zu stellen, hier ein Beispiel, falls du mit id´s arbeitest...


    SQL
    new 
        n_str[MAX_PLAYER_NAME], 
        string[128];
    GetPlayerName(playerid, n_str, sizeof(n_str));
    format(string, sizeof(string), "SELECT id FROM user WHERE name = '%s'", n_str)


    Danach checken ob dir die Datenbank keinen Datensatz liefert, falls der Fall Funktion mit Fehlermeldung
    zurückgeben

    [align=center]
    Mta Script Editor - Work in Progress

  • Ja, so habe ich das ja bisher auch gemacht, allerdings verstehe ich ja genau die Abfrage danach nicht.
    Allerdings funktioniert der Login ja immer noch nicht, da ich anscheinend mit einem anderen Plugin arbeite als Tirus (s. oben)


    Mit freundl. Grüßen
    Padarom

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

    Einmal editiert, zuletzt von Padarom ()