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
  • Ohne mir das Script selber angeschaut zu haben vermute ich mal, dass

    • CreateAccount: Den Eintrag in die SQL-Datenbank tätig um den Spielernamen zu registrieren
    • mysql_ReturnPasswort das Passwort des Spielers ausgibt um es beispielsweise beim Login zu überprüfen


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Ohne mir das Script selber angeschaut zu haben vermute ich mal, dass

    • CreateAccount: Den Eintrag in die SQL-Datenbank tätig um den Spielernamen zu registrieren
    • mysql_ReturnPasswort das Passwort des Spielers ausgibt um es beispielsweise beim Login zu überprüfen


    Danke für den Versuch, aber mir gings um jede Zeile die der Poster schrieb von den beiden Stocks.
    Was das jeweilige gemacht, weis ich, aber ich will die Zeilen verstehen.

  • stock CreateAccount(playerid, pass[])
    stock mysql_ReturnPasswort(Name[])



    Diese beiden Stocks, kann dir mir einer beim ihm, wie er es hier hat erklären.
    Er erklärt diese nicht, ich will jede Zeile genau verstehen.
    Würde mich freuen, wenn mir jemand weiterhilft.


    stock CreateAccount(playerid, pass[])
    {
    new query[256],Name[MAX_PLAYER_NAME]; //varaiblen erstellen. Sollte klar sein^^
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME); //Name des Spielers in der Variable "Name" speichern.
    mysql_real_escape_string(Name,Name); //Name escaped
    mysql_real_escape_string(pass,pass); //Passwort escaped
    format(query, sizeof(query), "INSERT INTO `accounts` (`Name`, `Passwort`) VALUES ('%s', '%s')", Name, pass); //String vorbereiten, um einen Neuen eintrag in der Tabelle anzulegen mit dem angegebenen Passwort und Namen.
    mysql_query(query);// query abschicken
    return true;
    }
    stock mysql_ReturnPasswort(Name[])
    {
    new query[130], Get[130]; //varaiblen erstellen. Sollte klar sein^^
    mysql_real_escape_string(Name, Name);//Name escaped
    format(query, 128, "SELECT `passwort` FROM `accounts` WHERE `Name` = '%s'", Name);//String vorbereiten, um das Passwort aus der tabelle "accounts" zu holen, wo der zugehörige Name der im stock angegebene Name ist.
    mysql_query(query); //query abschicken
    mysql_store_result(); //ergebniss speichern
    mysql_fetch_row(Get); //ergebniss auslesen
    mysql_free_result(); //speicher wieder frei geben
    return Get; //passwort zurück geben
    }

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

  • Oh, dann machen wir das nochmal ausführlicher, kein Problem ;)


    stock CreateAccount(playerid, pass[])
    {
    [color=blue]new[/color] query[[color=darkorange]256[/color]],Name[MAX_PLAYER_NAME]; // Erstellt die Variablen query mit einer Länge von 256 und Name mit der Länge von MAX_PLAYER_NAME (= 32 oder so)
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME); // Findet den Spielernamen der playerid heraus
    mysql_real_escape_string(Name,Name); // Escaped den String 'Name', damit in der SQL kein Unfug gemacht werden kann. Sonderzeichen werden also als Sonderzeichen behandelt.
    mysql_real_escape_string(pass,pass); // Siehe Zeile darüber
    format(query, [color=blue]sizeof[/color](query), [color=red]"INSERT INTO `accounts` (`Name`, `Passwort`) VALUES ('%s', '%s')"[/color], Name, pass); // Ersetzt in dem Text die Variablen %s durch Name und pass, sodass daraus ein korrekter String entsteht
    mysql_query(query); // Sendet die Abfrage 'query' die oben mit format vorbereitet wurde an die SQL-Datenbank (Ein INSERT-Query)
    [color=blue]return[/color] true; // Gibt "wahr" zurück
    }
    stock mysql_ReturnPasswort(Name[])
    {
    [color=blue]new[/color] query[[color=darkorange]130[/color]], Get[[color=darkorange]130[/color]]; // Erstellt wieder 2 Variablen mit der Länge 130
    mysql_real_escape_string(Name, Name); // Siehe oben
    format(query, [color=darkorange]128[/color], [color=red]"SELECT `passwort` FROM `accounts` WHERE `Name` = '%s'"[/color], Name); // Siehe oben, dieses Mal bereiten wir einen SELECT-Query vor.
    mysql_query(query); // Siehe oben
    mysql_store_result(); // Speichert das Ergebnis der Abfrage, sodass es nicht verworfen wird.
    mysql_fetch_row(Get); // Liest die einzelne Zeile aus und speichert die Wiedergabe in der Variable Get
    mysql_free_result(); // Verwirft das Ergebnis der Abfrage und macht Platz für eine neue
    [color=blue]return[/color] Get; // Gibt den Wert der Variable 'Get' aus.
    }


    Hoffe das war so weit verständlich und in deinem Sinne ;)


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Danke sehr ^^, das hört man gern ^^.
    Habe ein Fehler, ich kann denken woran es liegt.
    Aber vllt Irre ich mich, deshalb poste ichs mal sicherheitshalber.


    if(!strcmp(inputtext, mysql_ReturnPasswort(SpielerName), true))


    (357) : error 076: syntax error in the expression, or invalid function call

  • Vermutlich musst du entweder SpielerName vorher definieren (sofern das nicht geschehen ist), oder du must mysql_ReturnPasswort erst mit einem nervigen format zum String machen.
    Oder ich irre mich und mysql_ReturnPasswort gibt garkeinen String aus :P


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Kriege 8 Erros wegen mysql_query(Query);

    C:\Users\Reinhard\Desktop\srv-u2-mp-c3-win\gamemodes\PRO.pwn(357) : error 017: undefined symbol "mysql_query"
    C:\Users\Reinhard\Desktop\srv-u2-mp-c3-win\gamemodes\PRO.pwn(371) : error 017: undefined symbol "mysql_query"
    C:\Users\Reinhard\Desktop\srv-u2-mp-c3-win\gamemodes\PRO.pwn(379) : error 017: undefined symbol "mysql_query"
    C:\Users\Reinhard\Desktop\srv-u2-mp-c3-win\gamemodes\PRO.pwn(405) : error 017: undefined symbol "mysql_query"
    C:\Users\Reinhard\Desktop\srv-u2-mp-c3-win\gamemodes\PRO.pwn(407) : error 017: undefined symbol "mysql_fetch_int"
    C:\Users\Reinhard\Desktop\srv-u2-mp-c3-win\gamemodes\PRO.pwn(463) : error 017: undefined symbol "mysql_query"
    C:\Users\Reinhard\Desktop\srv-u2-mp-c3-win\gamemodes\PRO.pwn(486) : error 017: undefined symbol "mysql_query"


    Kann mir jemand helfen?


    MfG,
    FabianLP!

  • Achja, was schönes im Post von BlueG doch alles drinnen steht:

    Zitat

    NOTE: DON'T USE VERSION R7 OR ABOVE IF YOU HAVE NO IDEA WHAT THREADING MEANS OR HOW IT WORKS. YOU MIGHT HARM YOUR SERVER WHEN USING IT NOT PROPERLY.


    Du verwendest die R7 oder höher, dort gibts es die Funktionen nicht mehr bzw. ihr Name ist anders (und auch ihre Syntax).


    LG

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.

  • Ja im 0.3e Server Packet war die R7 des MySQL Plugins dabei.
    Du musst die Funktionen umschreiben, da es nicht mehr ganz hiermit kompatibel ist.


    LG

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.

  • Ich fühl mich verarscht, lest doch mal die Posts von den Plugins, wo ihr euch alles downloadet:
    [ SCRIPTING ] MySQL R7 - Cachefunktionen + Threaded Querys


    LG

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.

    Einmal editiert, zuletzt von L0g4n ()