Danke ich kenne solidfiles
Verstehe nur jetzt nicht genau wie ich das machen soll.
Ich hab damals immer mit MD5([...]) gearbeitet nie so
Beiträge von Pride
-
-
Was du mal versuchen kannst, da gab es auch schon mal Probleme: Entferne alle die MD5's, also alle MD5('%s') bzw MD5('%e') zu: '%s' bzw '%e'
Geht es dann?Wenn ich alle MD5's entferne dann geht es wunderbar
//EDIT:
Wie kann ich das jetzt trz. hashen? -
Code
Alles anzeigenSA-MP Dedicated Server ---------------------- v0.3z, (C)2005-2014 SA-MP Team [22:48:05] filterscripts = "" (string) [22:48:05] [22:48:05] Server Plugins [22:48:05] -------------- [22:48:05] Loading plugin: mysql [22:48:05] >> plugin.mysql: R39-3 successfully loaded. [22:48:05] Loaded. [22:48:05] Loaded 1 plugins. [22:48:05] [22:48:05] Filterscripts [22:48:05] --------------- [22:48:05] Loaded 0 filterscripts. [22:48:05] MySQL: Die Verbindung wurde erfolgreich hergestellt. [22:48:05] Das Script wurde geladen.. [22:48:05] Number of vehicle models: 0 [22:49:03] Incoming connection: 127.0.0.1:55991 [22:49:04] [join] PrideGame has joined the server (0:127.0.0.1) [22:49:06] query: SELECT * FROM user WHERE username='PrideGame' AND passwort=MD5('*********') [22:49:06] rows: 0 [22:49:06] Passwort falsch [22:49:08] query: SELECT * FROM user WHERE username='PrideGame' AND passwort=MD5('**********') [22:49:08] rows: 0 [22:49:08] Passwort falsch [22:49:10] query: SELECT * FROM user WHERE username='PrideGame' AND passwort=MD5('********') [22:49:10] rows: 0 [22:49:10] Passwort falsch [22:49:11] [part] PrideGame has left the server (0:2)
//EDIT
Mal so ne Frage was ich wenn ich die rows einfach drehe oder geht das nicht? -
Nein es funktioniert immer noch nicht.
-
War doch schon da oben egal habs ja an manchen Stellen nochmal editiert:
forward OnPasswordResponse(playerid);
public OnPasswordResponse(playerid)
{
new num_fields, num_rows;
cache_get_data(num_rows, num_fields);
if(num_rows == 0)
{
//Passwort falsch..
/* Kamerafahrt */
InterpolateCameraPos(playerid, 410.214721, -1902.890136, 1.724467, 702.832702, -1904.377319, 3.244797, 100000);
InterpolateCameraLookAt(playerid, 410.543914, -1897.903930, 1.554080, 699.028930, -1901.132202, 3.214741, 100000);
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung - Passwort falsch", "Dein Passwort ist nicht richtig\nsolltest du es vergessen haben\nmelde dich im Forum.", "Anmelden", "Abbrechen");
SetSpawnInfo(playerid,0,0,0,0,0,0,0,0,0,0,0,0);
SpawnPlayer(playerid);
}
else
{
//Passwort richtig..
SendClientMessage(playerid,gelb, "Erfolgreich eingeloggt.");
pInfo[playerid][pEingeloggt] = 1;
LoadAccount(playerid);
SpawnPlayer(playerid);
}
return 1;
} -
Hier ist die Log:
Code
Alles anzeigen[21:06:25] [DEBUG] CMySQLConnection::Connect - establishing connection to database... [21:06:25] [DEBUG] CMySQLConnection::Connect - establishing connection to database... [21:06:25] [DEBUG] CMySQLConnection::Connect - establishing connection to database... [21:06:25] [DEBUG] CMySQLConnection::Connect - connection was successful [21:06:25] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled [21:06:25] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled [21:06:50] [DEBUG] mysql_format - connection: 1, len: 256, format: "SELECT * FROM user WHERE username='%e'" [21:06:50] [DEBUG] mysql_tquery - connection: 1, query: "SELECT * FROM user WHERE username='PrideGame'", callback: "UserCheck", format: "i" [21:06:50] [DEBUG] CMySQLQuery::Execute[UserCheck] - starting query execution [21:06:50] [DEBUG] CMySQLQuery::Execute[UserCheck] - query was successfully executed within 0.552 milliseconds [21:06:50] [DEBUG] CMySQLResult::CMySQLResult() - constructor called [21:06:50] [DEBUG] Calling callback "UserCheck".. [21:06:50] [DEBUG] cache_get_data - connection: 1 [21:06:50] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called [21:06:53] [DEBUG] mysql_format - connection: 1, len: 256, format: "SELECT * FROM user WHERE username='%e' AND passwort=MD5('%e')" [21:06:53] [DEBUG] mysql_tquery - connection: 1, query: "SELECT * FROM user WHERE username='PrideGame' AND passwort=MD5('", callback: "OnPasswordResponse", format: "i" [21:06:53] [DEBUG] CMySQLQuery::Execute[OnPasswordResponse] - starting query execution [21:06:53] [DEBUG] CMySQLQuery::Execute[OnPasswordResponse] - query was successfully executed within 0.367 milliseconds [21:06:53] [DEBUG] CMySQLResult::CMySQLResult() - constructor called [21:06:53] [DEBUG] Calling callback "OnPasswordResponse".. [21:06:53] [DEBUG] cache_get_data - connection: 1 [21:06:53] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called
Meinst du das mit Login Code?
if(dialogid == DIALOG_LOGIN)
{
if(!response)
{
return Kick(playerid);
}
new query[256];
mysql_format(Handle, query, sizeof(query), "SELECT * FROM user WHERE username='%e' AND passwort=MD5('%e')", Spielername(playerid), inputtext);
mysql_tquery(Handle, query, "OnPasswordResponse", "i", playerid);
} -
Hier einmal das Spieler speichern:
/* Account Speichern und Laden */
stock LoadAccount(playerid)
{
pInfo[playerid][pEingeloggt] = 1;
pInfo[playerid][pGeld] = cache_get_field_content_int(0, "Geld", Handle), GivePlayerMoney(playerid, pInfo[playerid][pGeld]);
pInfo[playerid][pLevel] = cache_get_field_content_int(0, "Level", Handle), SetPlayerScore(playerid, pInfo[playerid][pLevel]);
pInfo[playerid][pAdmin] = cache_get_field_content_int(0, "Adminlevel", Handle), SetPlayerScore(playerid, pInfo[playerid][pAdmin]);
return 1;
}
stock SpielerSpeichern(playerid)
{
if(!pInfo[playerid][pEingeloggt])return 1;
new query[128];
mysql_format(Handle, query, sizeof query, "UPDATE `users` SET `Geld`='%i',`Level`='%i',`Adminlevel`='%i' WHERE `username`='%e'",GetPlayerMoney(playerid),GetPlayerScore(playerid),pInfo[playerid][pAdmin],Spielername(playerid)),
mysql_pquery(Handle, query, "", "");
return 1;
}Ich habe auch gerade den MD5 Code kopiert und in den Dialog als Passwort eingefügt ist auch falsch wird ja auch eigentlich wieder
zurück ins normale Passwort gehasht aber irgendwie kann ich da eingeben was ich will es kommt immer Passwort ist falsch,
hab es mit nem Neuen Acc. auch getestet es ist das richtige Passwort. -
Nun wenn man vom Teufel spricht ich habe glaube ich ein Fehler in dieser Ecke.
forward OnPasswordResponse(playerid);
public OnPasswordResponse(playerid)
{
new num_fields, num_rows;
cache_get_data(num_rows, num_fields);
if(num_rows == 0)
{
//Passwort falsch..
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung - Passwort falsch", "Dein Passwort ist nicht richtig\nsolltest du es vergessen haben\nmelde dich im Forum.", "Anmelden", "Abbrechen");
}
else
{
//Passwort richtig..
SendClientMessage(playerid,gelb, "Erfolgreich eingeloggt.");
pInfo[playerid][pEingeloggt] = 1;
LoadAccount(playerid);
SpawnPlayer(playerid);
}
return 1;
}Ich kann mich Registrieren bekomme mein "Test" Geld und "Test" Level dann logge ich mich aus doch wenn ich mich nun anmelden möchte
kommt mein Passwort ist falsch.. Ich teste es eben nochmal mit nem neuen Acc. eventuell hab ich echt nen falsches Pw drinnen x'D
Aber eigentlich sollte ich es richtig eingetippt haben. -
Hab ich auch nicht als Kritik aufgefasst wollte nur den Unterhaltungs Wert heben da meine beiden Monitore voll mit Script Sprache sind
Noch ne Frage ist das noch aktuell mit demIn seinem Tutorial hat irgendwer mal als Antwort geschrieben dort gibt es schon bessere Varianten
ich würde gern von Anfang an nur das beste lernen. -
Er hat nur einmal "password" verwendet, sonst immer "passwort"
Bin ja schon still :pWenn ich jetzt auf den Server komme kann ich mich mit dem Dialog registrieren es wird auch ein Eintrag in der Datenbank gemacht nun reloggte ich um zu
testen ob ich mich jetzt anmelden muss aber nein, ich muss mir wieder ein Acc. erstellen.
public OnPlayerConnect(playerid)
{
new query[256];
format(query, sizeof(query), "SELECT * FROM user WHERE username='%e'", Spielername(playerid));
mysql_tquery(Handle, query, "UserCheck", "i", playerid);
ClearChat(playerid);
return 1;
}stock Spielername(playerid)
{
new name[24];
GetPlayerName(playerid, name, 24);
return name;
}forward UserCheck(playerid);
public UserCheck(playerid)
{
new num_rows, num_fields;
cache_get_data(num_rows, num_fields, Handle);
if(num_rows == 0)
{
//Register..
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Neuanfang", "Herzlich willkommen, auf unserem Server\nBitte erstelle nun ein neuen Charakter.", "Anmelden", "Abbrechen");
}
else
{
//Login..
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Dein Charakter wartet schon auf dich, los logg dich ein.", "Anmelden", "Abbrechen");
}
} -
Meine Schuld wenn ich nur C & P mache und du solltest eventuell 'passwort' mit 'd' (password) schreiben sonst kommen da noch mehr fragen auf.
Weil in dem Tutorial von MrPawn immer 'password' verwendet wird.
Ich teste es mal eben.. -
if(dialogid == DIALOG_REGISTER)
{
if(!response)
{
return Kick(playerid);
}
if(strlen(inputtext) < 4)return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Anmeldung", "Dein Passwort ist zu kurz!", "Anmelden", "Abbrechen");
new query[256], key[50], name[MAX_PLAYER_NAME];
format(key, sizeof(key), inputtext);
mysql_escape_string(Spielername(playerid), name);
mysql_escape_string(key, key);
format(query, sizeof(query), "INSERT INTO (username, passwort) VALUES ('%s',MD5('%s'))", name, key);
mysql_tquery(Handle, query);
SendClientMessage(playerid, 0xFFFFFFFF, "Dein Account wurde erstellt.");
GivePlayerMoney(playerid, 50000);
SetPlayerScore(playerid, 10);
} -
Werde jetzt wahrscheinlich für ne halbe Stunde nicht antworten bin Essen aber noch eins jetzt bekomme ich ein Dialog kann auch ein PW eingeben und oben steht auch "Dein Account wurde erstellt." nur wenn ich dann ausmache und in die Datenbank schaue steht da kein Eintrag hier mal die Log.
Code
Alles anzeigen[18:47:01] [DEBUG] CMySQLConnection::Connect - establishing connection to database... [18:47:01] [DEBUG] CMySQLConnection::Connect - establishing connection to database... [18:47:01] [DEBUG] CMySQLConnection::Connect - connection was successful [18:47:01] [DEBUG] CMySQLConnection::Connect - connection was successful [18:47:01] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled [18:47:01] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled [18:47:01] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled [18:47:29] [DEBUG] mysql_tquery - connection: 1, query: "SELECT * FROM user WHERE username='e'", callback: "UserCheck", format: "i" [18:47:29] [DEBUG] CMySQLQuery::Execute[UserCheck] - starting query execution [18:47:29] [DEBUG] CMySQLQuery::Execute[UserCheck] - query was successfully executed within 12.484 milliseconds [18:47:29] [DEBUG] CMySQLResult::CMySQLResult() - constructor called [18:47:29] [DEBUG] Calling callback "UserCheck".. [18:47:29] [DEBUG] cache_get_data - connection: 1 [18:47:29] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called [18:47:31] [DEBUG] mysql_escape_string - source: "PrideGame", connection: 1, max_len: 24 [18:47:31] [DEBUG] mysql_escape_string - source: "emily123", connection: 1, max_len: 50 [18:47:31] [DEBUG] mysql_tquery - connection: 1, query: "INSERT INTO (username, passwort) VALUES ('PrideGame',MD5('*******", callback: "(null)", format: "(null)" [18:47:31] [DEBUG] CMySQLQuery::Execute[] - starting query execution [18:47:31] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(username, passwort) VALUES ('PrideGame',MD5('*******'))' at line 1 [18:47:31] [DEBUG] CMySQLQuery::Execute[] - error will be triggered in OnQueryError
Ich bereue die Script Pause.. soviele Fragen in meinem Kopf -
"Für 2000$ wirst du aus deinem Flugzeug geschissen + Fallschirm."
Würde ich ungern *geschmissenWerde es mir mal heute Abend anschauen
-
Das ist mir jetzt ein wenig peinlich diese Worte in meine Tastatur reinzuhauen aber ich habe bei.. ach seh selbst
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);
Handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATA, MYSQL_PASS);
if(mysql_errno() < 1)print("MySQL: Die Verbindung wurde erfolgreich hergestellt."),mysql_log(LOG_ALL); else print("MySQL: Die Verbindung zur MySQL Datenbank konnte nicht hergestellt werden | Der Server wird nun heruntergefahren."), SendRconCommand("exit");
return 1;
}Nun habe ich es dort entfernt und bei OnGameModeInit eingefügt... doch wenn ich auf dem Server join wieder nichts..
MySQL Log:
Code
Alles anzeigen[18:37:48] [DEBUG] CMySQLConnection::Connect - establishing connection to database... [18:37:48] [DEBUG] CMySQLConnection::Connect - establishing connection to database... [18:37:48] [DEBUG] CMySQLConnection::Connect - connection was successful [18:37:48] [DEBUG] CMySQLConnection::Connect - connection was successful [18:37:48] [DEBUG] CMySQLConnection::Connect - connection was successful [18:37:48] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled [18:37:48] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled [18:37:48] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled [18:38:21] [DEBUG] mysql_tquery - connection: 1, query: "SELECT * FROM user WHERE username='e'", callback: "UserCheck", format: "i" [18:38:21] [DEBUG] CMySQLQuery::Execute[UserCheck] - starting query execution [18:38:21] [ERROR] CMySQLQuery::Execute[UserCheck] - (error #1054) Unknown column 'username' in 'where clause' [18:38:21] [DEBUG] CMySQLQuery::Execute[UserCheck] - error will be triggered in OnQueryError
-
Ich habe gerade den ganzen Server noch mal geschlossen und gestartet nun die Log.
Code
Alles anzeigen[18:26:30] [DEBUG] mysql_tquery - connection: 0, query: "SELECT * FROM user WHERE username='e'", callback: "UserCheck", format: "i" [18:26:30] [ERROR] mysql_tquery - invalid connection handle (id: 0) [18:26:30] [DEBUG] mysql_connect - host: "127.0.0.1", user: "root", database: "samp", password: "****", port: 3306, autoreconnect: true, pool_size: 2 [18:26:30] [DEBUG] CMySQLHandle::Create - creating new connection.. [18:26:30] [WARNING] CMySQLHandle::Create - connection already exists [18:26:30] [DEBUG] CMySQLConnection::Connect - establishing connection to database... [18:26:30] [DEBUG] CMySQLConnection::Connect - connection was successful [18:26:30] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled [18:26:30] [DEBUG] mysql_errno - connection: 1 [18:26:30] [DEBUG] CMySQLConnection::Connect - establishing connection to database... [18:26:30] [DEBUG] CMySQLConnection::Connect - connection was successful [18:26:30] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled [18:26:30] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled [18:26:30] [DEBUG] CMySQLConnection::Connect - establishing connection to database... [18:26:30] [DEBUG] CMySQLConnection::Connect - connection was successful [18:26:30] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
Wieder
und eine Verbindung wird doch hier erstellt oder liege ich dort Falsch?
//EDIT PWN Code berichtigt.
public OnGameModeInit()
{
DisableInteriorEnterExits();
ShowNameTags(1);
EnableStuntBonusForAll(0);
SetGameModeText("Roleplay Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
Handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATA, MYSQL_PASS);
if(mysql_errno() < 1)print("MySQL: Die Verbindung wurde erfolgreich hergestellt."),mysql_log(LOG_ALL); else print("MySQL: Die Verbindung zur MySQL Datenbank konnte nicht hergestellt werden | Der Server wird nun heruntergefahren."), SendRconCommand("exit");
return 1;
}
Demnach müsste doch nur eine Verbindung erstellt werden weil nirgendswo anders im Script ist mysql_connect. -
Hallo nach einer langen Pause wollte ich wieder Anfangen mit einem kleinem Gamemode,
ich habe das Tutorial von MrPawn verwendet (LINK) ich habe eigentlich alles so geschrieben
wie er, leichte Optimierungen durch andere Forum User. Nun wenn ich auf den Server join
kommt kein Dialog es kommt einfach nichts da es noch ein Blank Script ist kann ich einfach auf
Spawn klicken und es tut sich nichts kein Dialog kein garnichts..Ich vermute es liegt an der Datenbank Verbindung da ich so lange nichts mehr damit am Hut hatte
weis ich aber auch nicht mehr genau wo da jetzt das Problem ist.Code
Alles anzeigen[18:12:08] [DEBUG] mysql_connect - host: "127.0.0.1", user: "root", database: "samp", password: "****", port: 3306, autoreconnect: true, pool_size: 2 [18:12:08] [DEBUG] CMySQLHandle::Create - creating new connection.. [18:12:08] [WARNING] CMySQLHandle::Create - connection already exists [18:12:08] [DEBUG] CMySQLConnection::Connect - establishing connection to database... [18:12:08] [DEBUG] CMySQLConnection::Connect - connection was successful [18:12:08] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled [18:12:08] [DEBUG] mysql_errno - connection: 1 [18:12:08] [DEBUG] CMySQLConnection::Connect - establishing connection to database... [18:12:08] [DEBUG] CMySQLConnection::Connect - connection was successful [18:12:08] [DEBUG] CMySQLConnection::Connect - establishing connection to database... [18:12:08] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled [18:12:08] [DEBUG] CMySQLConnection::Connect - connection was successful [18:12:08] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled [18:12:08] [DEBUG] CMySQLConnection::Connect - establishing connection to database... [18:12:08] [DEBUG] CMySQLConnection::Connect - connection was successful [18:12:08] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
//EDIT1 (MySQL Daten hinzugefügt)
/* MySQL */
#define MYSQL_HOST "127.0.0.1"
#define MYSQL_USER "root"
#define MYSQL_DATA "samp"
#define MYSQL_PASS ""
//EDIT2 (Enum und Datenbank hinzugefügt)
enum PD {
pEingeloggt,
pGeld,
pLevel,
};
new pInfo[MAX_PLAYERS][PD]; -
Mmhh.. Ich habe alles so gemacht wie hier im Tutorial (Ist noch ein Blank Script nur dein Account System drinnen) und wenn ich auf dem Server komme kann ich auf Spawn klicken und nichts passiert..
Ich meine damit schnellere und bessere Möglichkeiten es zu scripten.
-
Ich brauch ein Tutorial für MySQL R39-3 hat jemand eins für mich, das hier
funktioniert nicht mehr richtig, MrMonats MySQL Login ist denke mal
auch veraltet hat jemand ein aktuelles? -
Gut, habe meine Meinung ich zieh mein SA:MP Projekt durch
(Danke für die Communtiy)