Wird noch nach Testern gesucht? Habe gerade nichts zutun
Beiträge von Alborzar
-
-
-
-
Hab das nächste Problem
Ich möchte die letzten Koordinaten beim Disconnect speichern, jedoch werden die nicht gespeichert?
Code:
Codenew query[256], Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); mysql_format(handle, query, sizeof(query), "UPDATE users SET level = '%d', money = '%d', kills = '%d', deaths = '%d', last_coord_x = '%f', last_coord_y = '%f', last_coord_z = '%f', WHERE id = '%d'", PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths], x, y, z, PlayerInfo[playerid][p_id]);
-
Dein a_mysql Include ist nicht die neuste Version.
Das Script hat gestern sogar noch funktioniert, nur heute kamen die Errors beim Compiling
//EDIT: Klappt alles wieder, habe das MySQL Include erneut hinzugefügt
-
Folgende Fehlermeldungen erhalte ich
ZitatC:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(57) : warning 213: tag mismatch
C:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(74) : warning 213: tag mismatch
C:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(74) : error 035: argument type mismatch (argument 3)
C:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(77) : error 017: undefined symbol "mysql_pquery"
C:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(293) : warning 213: tag mismatch
C:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(293) : error 035: argument type mismatch (argument 3)
C:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(296) : error 017: undefined symbol "mysql_pquery"
C:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(307) : warning 213: tag mismatch
C:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(307) : error 035: argument type mismatch (argument 3)
C:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(309) : error 017: undefined symbol "mysql_pquery"
C:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(323) : error 017: undefined symbol "cache_insert_id"
C:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(333) : error 017: undefined symbol "cache_get_row_count"
C:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(351) : error 017: undefined symbol "cache_get_row_count"
C:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(361) : error 017: undefined symbol "cache_get_value_name_int"
C:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(362) : error 017: undefined symbol "cache_get_value_name_int"
C:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(363) : error 017: undefined symbol "cache_get_value_name_int"
C:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(364) : error 017: undefined symbol "cache_get_value_name_int"
C:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(365) : error 017: undefined symbol "cache_get_value_name_int"
C:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(380) : warning 213: tag mismatch
C:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(383) : warning 213: tag mismatch
C:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(413) : warning 213: tag mismatch
C:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(413) : error 035: argument type mismatch (argument 3)
C:\Users\Ashkan\Desktop\SAMP Server\gamemodes\ownScript.pwn(417) : error 017: undefined symbol "mysql_pquery"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase16 Errors.
GamemodeC: OwnGamemode.pwn
Alles anzeigen#include <a_samp> #include <a_mysql> #include <sscanf2> #include <streamer> //#define MYSQL_HOST "**.**.***.**" //IP Adresse des MySQL Servers #define MYSQL_USER "*******" //Benutzername der angemeldet wird #define MYSQL_PASS "******************" //Passwort des Benutzers #define MYSQL_DBSE "*******" //Name der Datenbank //Dialog IDs #define DIALOG_REGISTER 0 #define DIALOG_LOGIN 1 new MySQL:handle; enum pDataEnum { p_id, bool:pLoggedIn, pName[MAX_PLAYER_NAME], pLevel, pMoney, pKills, pDeaths } new PlayerInfo[MAX_PLAYERS][pDataEnum]; //Forwards forward OnUserCheck(playerid); forward OnUserRegister(playerid); forward OnUserLogin(playerid); main() { print("\n----------------------------------"); print(" Blank Gamemode by your name here"); print("----------------------------------\n"); } public OnGameModeInit() { MySQL_SetupConnection(); SetGameModeText("Blank Script"); for(new i = 1; i < 311; i++){ AddPlayerClass(i, 2089.1777,1683.2428,10.8203, 91.4896, 24, 999, 31, 999, 34, 999); } SetWorldTime(14); SetWeather(1); DisableInteriorEnterExits(); return 1; } public OnGameModeExit() { mysql_close(handle); return 1; } public OnPlayerRequestClass(playerid, classid) { SetPlayerPos(playerid, 2089.1777,1683.2428,10.8203); SetPlayerFacingAngle(playerid, 91.4896); SetPlayerCameraPos(playerid, 2084.6057,1683.1548,10.9016); SetPlayerCameraLookAt(playerid, 2089.1777,1683.2428,10.8203); //Wenn der Spieler die Class-Selection betritt prüfe, ob er bereits eingeloggt ist if(!PlayerInfo[playerid][pLoggedIn]) { //Wenn nicht, dann prüfe ob der Spieler ein Konto hat //Dazu wird ein Query gesendet und ein neues Callback aufgerufen //%e steht für einen geprüften String (sollte anstatt %s in Queries verwendet werden) new query[128]; mysql_format(handle, query, sizeof(query), "SELECT id FROM users WHERE name = '%e'", PlayerInfo[playerid][pName]); //Das Query wird abgesendet und die playerid an OnUserCheck übergeben mysql_pquery(handle, query, "OnUserCheck", "d", playerid); } return 1; } public OnPlayerConnect(playerid) { PlayerInfo[playerid][p_id] = 0; PlayerInfo[playerid][pLoggedIn] = false; PlayerInfo[playerid][pLevel] = 0; PlayerInfo[playerid][pMoney] = 0; PlayerInfo[playerid][pKills] = 0; PlayerInfo[playerid][pDeaths] = 0; GetPlayerName(playerid, PlayerInfo[playerid][pName], MAX_PLAYER_NAME); for(new i = 0; i <= 20; i++){ SendClientMessage(playerid, 0xFFFFFFFF, " "); } SendClientMessage(playerid, 0xFFFFFFFF, "* Willkommen auf dem Server!"); SendClientMessage(playerid, 0xFFFFFFFF, "* Server Version: 1.0.0"); SendClientMessage(playerid, 0xFFFFFFFF, "* Besuche unsere Website: www.DOMAIN.tld"); GameTextForPlayer(playerid, "SERVERNAME", 3000, 3); return 1; } public OnPlayerDisconnect(playerid, reason) { SaveUserStats(playerid); return 1; } public OnPlayerSpawn(playerid) { SetPlayerPos(playerid, 2218.6963,1839.2418,10.8203); SetCameraBehindPlayer(playerid); return 1; } public OnPlayerDeath(playerid, killerid, reason) { if(killerid != INVALID_PLAYER_ID) { PlayerInfo[killerid][pKills]++; GivePlayerMoney(killerid, 10); PlayerInfo[killerid][pMoney] += 10; if(PlayerInfo[killerid][pKills] > 3) { PlayerInfo[killerid][pLevel] = 1; } } PlayerInfo[playerid][pDeaths]++; return 1; } public OnVehicleSpawn(vehicleid) { return 1; } public OnVehicleDeath(vehicleid, killerid) { return 1; } public OnPlayerText(playerid, text[]) { return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/mycommand", cmdtext, true, 10) == 0) { // Do something here return 1; } return 0; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { return 1; } public OnPlayerExitVehicle(playerid, vehicleid) { return 1; } public OnPlayerStateChange(playerid, newstate, oldstate) { return 1; } public OnPlayerEnterCheckpoint(playerid) { return 1; } public OnPlayerLeaveCheckpoint(playerid) { return 1; } public OnPlayerEnterRaceCheckpoint(playerid) { return 1; } public OnPlayerLeaveRaceCheckpoint(playerid) { return 1; } public OnRconCommand(cmd[]) { return 1; } public OnPlayerRequestSpawn(playerid) { return 1; } public OnObjectMoved(objectid) { return 1; } public OnPlayerObjectMoved(playerid, objectid) { return 1; } public OnPlayerPickUpPickup(playerid, pickupid) { return 1; } public OnVehicleMod(playerid, vehicleid, componentid) { return 1; } public OnVehiclePaintjob(playerid, vehicleid, paintjobid) { return 1; } public OnVehicleRespray(playerid, vehicleid, color1, color2) { return 1; } public OnPlayerSelectedMenuRow(playerid, row) { return 1; } public OnPlayerExitedMenu(playerid) { return 1; } public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) { return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { return 1; } public OnRconLoginAttempt(ip[], password[], success) { return 1; } public OnPlayerUpdate(playerid) { return 1; } public OnPlayerStreamIn(playerid, forplayerid) { return 1; } public OnPlayerStreamOut(playerid, forplayerid) { return 1; } public OnVehicleStreamIn(vehicleid, forplayerid) { return 1; } public OnVehicleStreamOut(vehicleid, forplayerid) { return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == DIALOG_REGISTER) { //Spieler hat Abbrechen gewählt if(!response) return Kick(playerid); //Wenn der Spieler kein, oder ein zu kurzes, Passwort eingegeben hat if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration", "Bitte registriere Dich:\n{FF0000}Mindestens 3 Zeichen!", "Ok", "Abbrechen"); //Wenn alles passt wird der Spieler in der Datenbank angelegt //Als Verschlüsselung für das Passwort wird MD5 verwendet new query[256]; mysql_format(handle, query, sizeof(query), "INSERT INTO users (name, password) VALUES ('%e', MD5('%e'))", PlayerInfo[playerid][pName], inputtext); //Das Query wird abgesendet und die playerid an OnUserRegister übergeben mysql_pquery(handle, query, "OnUserRegister", "d", playerid); return 1; } if(dialogid == DIALOG_LOGIN) { //Spieler hat Abbrechen gewählt if(!response) return Kick(playerid); //Wenn der Spieler kein, oder ein zu kurzes, Passwort eingegeben hat if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge Dich ein:\n{FF0000}Mindestens 3 Zeichen!", "Ok", "Abbrechen"); //Wenn alles passt wird die Datenbank ausgelesen new query[256]; mysql_format(handle, query, sizeof(query), "SELECT * FROM users WHERE name = '%e' AND password = MD5('%e')", PlayerInfo[playerid][pName], inputtext); //Das Query wird abgesendet und die playerid an OnUserLogin übergeben mysql_pquery(handle, query, "OnUserLogin", "d", playerid); return 1; } return 1; } public OnPlayerClickPlayer(playerid, clickedplayerid, source) { return 1; } public OnUserRegister(playerid) { //Der Spieler wurde in die Datenbank eingetragen, es wird die id ausgelesen PlayerInfo[playerid][p_id] = cache_insert_id(); PlayerInfo[playerid][pLoggedIn] = true; SendClientMessage(playerid, 0x00FF00FF, "[Konto] Registration erfolgreich."); return 1; } public OnUserCheck(playerid) { //Query wurde ausgeführt und das Ergebnis im Cache gespeichert new rows; cache_get_row_count(rows); if(rows == 0) { //Der Spieler konnte nicht gefunden werden, er muss sich registrieren ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration", "Bitte registriere Dich:", "Ok", "Abbrechen"); } else { //Es existiert ein Ergebnis, das heißt der Spieler ist registriert und muss sich einloggen ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge Dich ein:", "Ok", "Abbrechen"); } return 1; } public OnUserLogin(playerid) { //Query wurde ausgeführt und das Ergebnis im Cache gespeichert new rows; cache_get_row_count(rows); if(rows == 0) { //Der Spieler hat ein falsches Passwort eingegeben ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge Dich ein:\n{FF0000}Falsches Passwort!", "Ok", "Abbrechen"); } else { //Es existiert ein Ergebnis, das heißt der Spieler hat das richtige Passwort eingegeben //Wir lesen nun die erste Zeile des Caches aus (ID 0) cache_get_value_name_int(0, "id", PlayerInfo[playerid][p_id]); cache_get_value_name_int(0, "level", PlayerInfo[playerid][pLevel]); cache_get_value_name_int(0, "money", PlayerInfo[playerid][pMoney]); cache_get_value_name_int(0, "kills", PlayerInfo[playerid][pKills]); cache_get_value_name_int(0, "deaths", PlayerInfo[playerid][pDeaths]); PlayerInfo[playerid][pLoggedIn] = true; SendClientMessage(playerid, 0x00FF00FF, "[Konto] Eingeloggt."); GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]); } return 1; } //Stocks stock MySQL_SetupConnection(ttl = 3) { print("[MySQL] Verbindungsaufbau..."); //mysql_log(); //<- Kommentar vor mysql_log entfernen um den MySQL Debug-Modus zu aktivieren handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DBSE); //Prüfen und gegebenenfalls wiederholen if(mysql_errno(handle) != 0) { //Fehler im Verbindungsaufbau, prüfe ob ein weiterer Versuch gestartet werden soll if(ttl > 1) { //Versuche erneut eine Verbindung aufzubauen print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden."); printf("[MySQL] Starte neuen Verbindungsversuch (TTL: %d).", ttl-1); return MySQL_SetupConnection(ttl-1); } else { //Abbrechen und Server schließen print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden."); print("[MySQL] Bitte prüfen Sie die Verbindungsdaten."); print("[MySQL] Der Server wird heruntergefahren."); return SendRconCommand("exit"); } } printf("[MySQL] Die Verbindung zur Datenbank wurde erfolgreich hergestellt! Handle: %d", _:handle); return 1; } stock SaveUserStats(playerid) { //Wenn der Spieler nicht eingeloggt ist, dann speichere seine Statistiken nicht if(!PlayerInfo[playerid][pLoggedIn]) return 1; //Ansonsten speichere sie new query[256]; mysql_format(handle, query, sizeof(query), "UPDATE users SET level = '%d', money = '%d', kills = '%d', deaths = '%d' WHERE id = '%d'", PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths], PlayerInfo[playerid][p_id]); //Das Query wird abgesendet mysql_pquery(handle, query); return 1; }
-
Hey,
ich habe alle Schritte befolgt, jedoch erscheint kein Dialog wenn ich connecte.
Code
Code: Gamemode
Alles anzeigen#include <a_samp> #include <a_mysql> #define MYSQL_HOST "***.***.***.***" //IP Adresse des MySQL Servers #define MYSQL_USER "***" //Benutzername der angemeldet wird #define MYSQL_PASS "***" //Passwort des Benutzers #define MYSQL_DBSE "***" //Name der Datenbank //Dialog IDs #define DIALOG_REGISTER 0 #define DIALOG_LOGIN 1 new MySQL:handle; enum pDataEnum { p_id, bool:pLoggedIn, pName[MAX_PLAYER_NAME], pLevel, pMoney, pKills, pDeaths } new PlayerInfo[MAX_PLAYERS][pDataEnum]; //Forwards forward OnUserCheck(playerid); forward OnUserRegister(playerid); forward OnUserLogin(playerid); main() { print("\n----------------------------------"); print(" Blank Gamemode by your name here"); print("----------------------------------\n"); } public OnGameModeInit() { MySQL_SetupConnection(); SetGameModeText("Blank Script"); AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); return 1; } public OnGameModeExit() { mysql_close(handle); return 1; } public OnPlayerRequestClass(playerid, classid) { SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746); //Wenn der Spieler die Class-Selection betritt prüfe, ob er bereits eingeloggt ist if(!PlayerInfo[playerid][pLoggedIn]) { //Wenn nicht, dann prüfe ob der Spieler ein Konto hat //Dazu wird ein Query gesendet und ein neues Callback aufgerufen //%e steht für einen geprüften String (sollte anstatt %s in Queries verwendet werden) new query[128]; mysql_format(handle, query, sizeof(query), "SELECT id FROM users WHERE name = '%e'", PlayerInfo[playerid][pName]); //Das Query wird abgesendet und die playerid an OnUserCheck übergeben mysql_pquery(handle, query, "OnUserCheck", "d", playerid); } return 1; } public OnPlayerConnect(playerid) { PlayerInfo[playerid][p_id] = 0; PlayerInfo[playerid][pLoggedIn] = false; PlayerInfo[playerid][pLevel] = 0; PlayerInfo[playerid][pMoney] = 0; PlayerInfo[playerid][pKills] = 0; PlayerInfo[playerid][pDeaths] = 0; GetPlayerName(playerid, PlayerInfo[playerid][pName], MAX_PLAYER_NAME); return 1; } public OnPlayerDisconnect(playerid, reason) { SaveUserStats(playerid); return 1; } public OnPlayerSpawn(playerid) { return 1; } public OnPlayerDeath(playerid, killerid, reason) { if(killerid != INVALID_PLAYER_ID) { PlayerInfo[killerid][pKills]++; GivePlayerMoney(killerid, 10); PlayerInfo[killerid][pMoney] += 10; if(PlayerInfo[killerid][pKills] > 3) { PlayerInfo[killerid][pLevel] = 1; } } PlayerInfo[playerid][pDeaths]++; return 1; } public OnVehicleSpawn(vehicleid) { return 1; } public OnVehicleDeath(vehicleid, killerid) { return 1; } public OnPlayerText(playerid, text[]) { return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/mycommand", cmdtext, true, 10) == 0) { // Do something here return 1; } return 0; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { return 1; } public OnPlayerExitVehicle(playerid, vehicleid) { return 1; } public OnPlayerStateChange(playerid, newstate, oldstate) { return 1; } public OnPlayerEnterCheckpoint(playerid) { return 1; } public OnPlayerLeaveCheckpoint(playerid) { return 1; } public OnPlayerEnterRaceCheckpoint(playerid) { return 1; } public OnPlayerLeaveRaceCheckpoint(playerid) { return 1; } public OnRconCommand(cmd[]) { return 1; } public OnPlayerRequestSpawn(playerid) { return 1; } public OnObjectMoved(objectid) { return 1; } public OnPlayerObjectMoved(playerid, objectid) { return 1; } public OnPlayerPickUpPickup(playerid, pickupid) { return 1; } public OnVehicleMod(playerid, vehicleid, componentid) { return 1; } public OnVehiclePaintjob(playerid, vehicleid, paintjobid) { return 1; } public OnVehicleRespray(playerid, vehicleid, color1, color2) { return 1; } public OnPlayerSelectedMenuRow(playerid, row) { return 1; } public OnPlayerExitedMenu(playerid) { return 1; } public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) { return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { return 1; } public OnRconLoginAttempt(ip[], password[], success) { return 1; } public OnPlayerUpdate(playerid) { return 1; } public OnPlayerStreamIn(playerid, forplayerid) { return 1; } public OnPlayerStreamOut(playerid, forplayerid) { return 1; } public OnVehicleStreamIn(vehicleid, forplayerid) { return 1; } public OnVehicleStreamOut(vehicleid, forplayerid) { return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == DIALOG_REGISTER) { //Spieler hat Abbrechen gewählt if(!response) return Kick(playerid); //Wenn der Spieler kein, oder ein zu kurzes, Passwort eingegeben hat if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration", "Bitte registriere Dich:\n{FF0000}Mindestens 3 Zeichen!", "Ok", "Abbrechen"); //Wenn alles passt wird der Spieler in der Datenbank angelegt //Als Verschlüsselung für das Passwort wird MD5 verwendet new query[256]; mysql_format(handle, query, sizeof(query), "INSERT INTO users (name, password) VALUES ('%e', MD5('%e'))", PlayerInfo[playerid][pName], inputtext); //Das Query wird abgesendet und die playerid an OnUserRegister übergeben mysql_pquery(handle, query, "OnUserRegister", "d", playerid); return 1; } if(dialogid == DIALOG_LOGIN) { //Spieler hat Abbrechen gewählt if(!response) return Kick(playerid); //Wenn der Spieler kein, oder ein zu kurzes, Passwort eingegeben hat if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge Dich ein:\n{FF0000}Mindestens 3 Zeichen!", "Ok", "Abbrechen"); //Wenn alles passt wird die Datenbank ausgelesen new query[256]; mysql_format(handle, query, sizeof(query), "SELECT * FROM users WHERE name = '%e' AND password = MD5('%e')", PlayerInfo[playerid][pName], inputtext); //Das Query wird abgesendet und die playerid an OnUserLogin übergeben mysql_pquery(handle, query, "OnUserLogin", "d", playerid); return 1; } return 1; } public OnPlayerClickPlayer(playerid, clickedplayerid, source) { return 1; } public OnUserRegister(playerid) { //Der Spieler wurde in die Datenbank eingetragen, es wird die id ausgelesen PlayerInfo[playerid][p_id] = cache_insert_id(); PlayerInfo[playerid][pLoggedIn] = true; SendClientMessage(playerid, 0x00FF00FF, "[Konto] Registration erfolgreich."); return 1; } public OnUserCheck(playerid) { //Query wurde ausgeführt und das Ergebnis im Cache gespeichert new rows; cache_get_row_count(rows); if(rows == 0) { //Der Spieler konnte nicht gefunden werden, er muss sich registrieren ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration", "Bitte registriere Dich:", "Ok", "Abbrechen"); } else { //Es existiert ein Ergebnis, das heißt der Spieler ist registriert und muss sich einloggen ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge Dich ein:", "Ok", "Abbrechen"); } return 1; } public OnUserLogin(playerid) { //Query wurde ausgeführt und das Ergebnis im Cache gespeichert new rows; cache_get_row_count(rows); if(rows == 0) { //Der Spieler hat ein falsches Passwort eingegeben ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge Dich ein:\n{FF0000}Falsches Passwort!", "Ok", "Abbrechen"); } else { //Es existiert ein Ergebnis, das heißt der Spieler hat das richtige Passwort eingegeben //Wir lesen nun die erste Zeile des Caches aus (ID 0) cache_get_value_name_int(0, "id", PlayerInfo[playerid][p_id]); cache_get_value_name_int(0, "level", PlayerInfo[playerid][pLevel]); cache_get_value_name_int(0, "money", PlayerInfo[playerid][pMoney]); cache_get_value_name_int(0, "kills", PlayerInfo[playerid][pKills]); cache_get_value_name_int(0, "deaths", PlayerInfo[playerid][pDeaths]); PlayerInfo[playerid][pLoggedIn] = true; SendClientMessage(playerid, 0x00FF00FF, "[Konto] Eingeloggt."); GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]); } return 1; } //Stocks stock MySQL_SetupConnection(ttl = 3) { print("[MySQL] Verbindungsaufbau..."); //mysql_log(); //<- Kommentar vor mysql_log entfernen um den MySQL Debug-Modus zu aktivieren handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DBSE); //Prüfen und gegebenenfalls wiederholen if(mysql_errno(handle) != 0) { //Fehler im Verbindungsaufbau, prüfe ob ein weiterer Versuch gestartet werden soll if(ttl > 1) { //Versuche erneut eine Verbindung aufzubauen print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden."); printf("[MySQL] Starte neuen Verbindungsversuch (TTL: %d).", ttl-1); return MySQL_SetupConnection(ttl-1); } else { //Abbrechen und Server schließen print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden."); print("[MySQL] Bitte prüfen Sie die Verbindungsdaten."); print("[MySQL] Der Server wird heruntergefahren."); return SendRconCommand("exit"); } } printf("[MySQL] Die Verbindung zur Datenbank wurde erfolgreich hergestellt! Handle: %d", _:handle); return 1; } stock SaveUserStats(playerid) { //Wenn der Spieler nicht eingeloggt ist, dann speichere seine Statistiken nicht if(!PlayerInfo[playerid][pLoggedIn]) return 1; //Ansonsten speichere sie new query[256]; mysql_format(handle, query, sizeof(query), "UPDATE users SET level = '%d', money = '%d', kills = '%d', deaths = '%d' WHERE id = '%d'", PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths], PlayerInfo[playerid][p_id]); //Das Query wird abgesendet mysql_pquery(handle, query); return 1; }
-
Für welches CP denn?
Anbei möchte ich anmerken das die CPs nicht unbedingt etwas für Anfänger sind. Schlechter Coding Stil... you knowFür das CON Reallife UCP und ja ich weiss nur brauche ich ein UCP und deine sehen halt sehr schön aus
-
Wenn keine dabei sind dann nicht, nein.Aber das ist jetzt nicht so schwer.
Ja hab da leider nicht viel Erfahrung und wüsste nicht wie genau die Tabelle aussehen müsste
-
Support zur Erstellung der Datenbanken gibts auch nicht?
-
Habs schon hinbekommen, trotzdem danke
-
Also,
ich frage ab ob eine Datei existiert, und falls diese nicht existieren sollte, wird sie heruntergeladen und das in ein Verzeichnis im AppData Verzeichnis
Code:
CodeIfNotExist, %A_AppData%\prawler\bin\Open-SAMP-API.dll { URLDownloadToFile, mainURL . "/bin/Open-SAMP-API.dll", %A_AppData%\prawler\bin\Open-SAMP-API.dll SplashTextOn, 550, 50, prawler, Datei heruntergeladen (%A_AppData%\prawler\bin\Open-SAMP-API.dll) Sleep 500 }
mainURL wurde definiert
Datei existiert auf dem Server
Verzeichnis wohin es heruntergeladen werden soll existiert auchNur wird die Datei dort nach dem Herunterladen nicht angezeigt
-
Ja mein Code hat auch nicht funktioniert...
PHP
Alles anzeigen<?php $mysql_username = "xxxxx"; $mysql_password = "xxxxx"; $dbh = new PDO('mysql:host=localhost;dbname=database', $mysql_username, $mysql_password); $username = isset($_GET['username']); if(isset($_POST['username']) && $_POST['username'] === $username) { $sql = $dbh->query("SELECT * FROM tabelle WHERE 'spaltenname' =:username"); $sql->bindParam(':username', $username, PDO::PARAM_STR); $stmt->$pdo -> query($query); $stmt->execute(); while ($result = $stmt -> fetchAll()) { echo $result['username']."<br>"; } } else { echo 'Benutzername ist : ' . $username; } ?>
Kann sein das da auch noch ein Fehler drin ist. Bin kein pro was das angeht.
Der Code gibt eine 1 zurück als parameter
-
Also so sieht der Code jetzt aus
PHP: getstatus.php
Alles anzeigen<?php $mysql_username = "***"; $mysql_password = "***"; $dbh = new PDO('mysql:host=localhost;dbname=***', $mysql_username, $mysql_password); $username = htmlspecialchars(isset($_POST['username'])); $key = "key"; if(isset($_GET['appkey']) && $_GET['appkey'] === $key) { if(isset($_GET['username']) && $_GET['username'] === $username){ $username = $_GET["username"]; $stmt = $dbh->query("SELECT status FROM users WHERE username = :username"); $result = $stmt->execute(array('username' => $username)); while ($status = $result->fetch()) { echo $status['classtype']."<br>"; } } else { echo "Kein benutzer mit dem Benutzernamen : " . $username . "gefunden!"; } } ?>
URL
https://***.**/panel/getstatus.php?appkey=key&username=TestAusgabe
Kein benutzer mit dem Benutzernamen : gefunden!Datenbank
-
Versuch mal so und pass dir das ein bisschen an!
PHP
Alles anzeigen<?php $mysql_username = ""; $mysql_password = ""; $dbh = new PDO('mysql:host=localhost;dbname=test', $mysql_username, $mysql_password); $username = htmlspecialchars(isset($_POST['username'])); $key = "deinsecuritykey"; if(isset($_GET['appkey']) && $_GET['appkey'] === $key) { if(isset($_GET['username']) && $_GET['username'] === $username){ $username = $_GET["username"]; $stmt = $dbh->query("SELECT status FROM users WHERE username = :username"); $result = $stmt->execute(array('username' => $username)); while ($status = $result->fetch()) { echo $status['classtype']."<br>"; } } else { echo "Kein benutzer mit dem Benutzernamen : " . $username . "gefunden!"; } } ?>
wie füge ich denn bei mir auf dem server einen security key ein?
//EDIT: Klappt immernoch nicht oder ich mache was falsch
-
PHP
Alles anzeigen<?php $mysqlconnection = mysqli_connect("localhost", "***", "***", "***") or die(mysql_error()); $username = htmlspecialchars(isset($_POST['username'])); $password = htmlspecialchars(isset($_POST['password'])); $key = "deinsecuritykey"; if(isset($_GET['appkey']) && $_GET['appkey'] === $key) { if(isset($_GET["username"])){ $username = $_GET["username"]; $result = mysqli_query($mysqlconnection, "SELECT status FROM users WHERE username= '$username';"); while ($status = $result->fetch_assoc()) { echo $status['classtype']."<br>"; } } else { echo "Kein benutzer mit dem Benutzernamen : " . $username . "gefunden!"; } } ?>
Könnte so funktionieren!
Habe mal die Funktion mit der key Abfrage auskommentiert und so sieht der code aus:
PHP: get.php
Alles anzeigen<?php $mysqlconnection = mysqli_connect("localhost", "***", "***", "***") or die(mysql_error()); $username = htmlspecialchars(isset($_POST['username'])); $password = htmlspecialchars(isset($_POST['password'])); $key = "deinsecuritykey"; //if(isset($_GET['appkey']) && $_GET['appkey'] === $key) //{ if(isset($_GET["username"])){ $username = $_GET["username"]; $result = mysqli_query($mysqlconnection, "SELECT status FROM users WHERE username= '$username';"); while ($status = $result->fetch_assoc()) { echo $status['classtype']."<br>"; } } else { echo "Kein benutzer mit dem Benutzernamen : " . $username . "gefunden!"; } //} ?>
Aber folgender link gibt nichts zurück:
[url]https://***.**/panel/get.php?username=Test_User[/url] -
Ich möchte dass man mit einer URL Daten aus der Datenbank abfragen kann, beispiel:
https://***.**/panel/get.php?username=Test
Test ist der Benutzername und ich möchte dass der status zurückgegeben wird
Code:
PHP: get.php
Alles anzeigen<?php $mysqlconnection = mysqli_connect("localhost", "***", "***", "***") or die(mysql_error()); mysqli_set_charset($mysqlconnection, "utf8"); if(isset($_GET["username"])){ $username = $_GET["username"]; $result = mysqli_query($mysqlconnection, "SELECT status FROM users WHERE username= '$username';"); while ($status = $result->fetch_assoc()) { echo $status['classtype']."<br>"; } } ?>
Tabelle:
-
Schau dir mal die Doku zur Funktion an: https://www.php.net/manual/de/function.session-start.php
danke
-
-
PHP
Alles anzeigenWarning: include(../includes/mysql.php): failed to open stream: No such file or directory in /www/htdocs/***/***.**/blacklistensystem/login.php on line 17 Warning: include(../includes/mysql.php): failed to open stream: No such file or directory in /www/htdocs/***/***.**/blacklistensystem/login.php on line 17 Warning: include(): Failed opening '../includes/mysql.php' for inclusion (include_path='.:/usr/share/php:..') in /www/htdocs/***/***.**/blacklistensystem/login.php on line 17 Warning: session_start() expects parameter 1 to be array, integer given in /www/htdocs/***/***.**/blacklistensystem/login.php on line 18 ?>