Sicher dass alle Felder groß genug sind? Setz Password mal auf 130 oder 600 zum Test.
Bei mir klappt der SQL-Befehl nämlich einwandfrei
MD5 Hash Passwort
- M_McGarrett
- Geschlossen
- Erledigt
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
-
-
-
So sollte es funktionieren. Es gibt keinen Grund an der Stelle sha2 zu verwenden.
http://prntscr.com/a4hrmr -
Ebenfalls fehlerhaft... die Funktion hab ich gestern schon versucht... irgendwie wollen die passwörter nicht hashen...
-
Ebenfalls fehlerhaft... die Funktion hab ich gestern schon versucht... irgendwie wollen die passwörter nicht hashen...
Dann liegt ein Fehler bei dir lokal oder im Skript vor, die Query ist von der Syntax her korrekt.
-
Ich versteh es einfach nicht warum das nicht funktioniert.... kann mir keiner wirklich helfen?
-
Bei den Spaltennamen ' statt `
-
Bei den Spaltennamen ' statt `
Nein, das wäre genau falsch herum.
-
Welche MySQL Version (Plugin + SQL Version in PMA) verwendest du? Linux oder Windows?
-
Versuche es so:
else if(dialogid == Register)
{
if(response == 0)
{
SendClientMessage(playerid, COLOR_ERRORTEXT, " Du hast den Vorgang abgebrochen und wurdest automatisch gekickt.");
TogglePlayerControllable(playerid, 0);
Kick(playerid);
}
if(response == 1)
{
if(!strlen(inputtext) || strlen(inputtext) < -1 || strlen(inputtext) > 15 || strlen(inputtext) < 6)
{
ShowPlayerDialog(playerid, Register, DIALOG_STYLE_PASSWORD, "Los Santos Roleplay Community: Registrieren", "Bitte gib ein Passwort für deinen Account ein ({FF1E00}mind. 6 Zeichen{A9C4D4}):", "Registrieren", "Abbruch");
return 1;
}
new ForbiddenCharactersExist = 0;
for(new ac = 0; ac < sizeof(ForbiddenCharacters); ac++)
{
if(strfind(inputtext, ForbiddenCharacters[ac], true) != -1)
{
ForbiddenCharactersExist = 1;
break;
}
}
if(strlen(inputtext) > 15 || ForbiddenCharactersExist == 1)
{
ShowPlayerDialog(playerid, Register, DIALOG_STYLE_PASSWORD, "Los Santos Roleplay Community: Registrierung", "Dein Passwort muss mindestens 6 und maximal 15 Bustaben haben\nUnd darf nur auch Bustaben von A-Z und Zahlen von 0-9 Bestehen.", "Registrieren", "Verlassen");
return SendClientMessage(playerid, COLOR_ERRORTEXT, " Dein Passwort darf maximal 10 Zeichen haben und darf nur aus A-Z bzw. a-z und 1-9 inkl. 0 bestehen !");
}
OnPlayerRegister(playerid, inputtext);
ShowPlayerDialog(playerid, Sicherheitscode, DIALOG_STYLE_MSGBOX, "Los Santos Roleplay Community: Login", "Herzlich Willkommen in unserer Community.Du hast dich erfolgreich registriert.\n\nMit einem Klick auf Login kannst du dich einloggen.", "Login", "Verlassen");
}
return 1;
}public OnPlayerRegister(playerid, password[])
{
StuffInfo[sNeuUser] += 1;
if(IsPlayerConnected(playerid))
{
new string[256],playername[MAX_PLAYER_NAME],passwort[64];
GetPlayerName(playerid, playername, sizeof(playername));
mysql_real_escape_string(password, passwort);
format(string, sizeof(string), "%s", password);
strmid(PlayerInfo[playerid][pKey], string, 0, strlen(string), 255);
format(string, sizeof(string), "INSERT INTO `users` (`Name`, `Password`) VALUES ('%s', MD5('%s'))", playername, passwort);
self_mysql_queryEx(string);
format(string, sizeof(string), "UPDATE `users` SET `RegisterDatum`='%d' WHERE `Name`='%s'", gettime(), playername);
self_mysql_queryEx(string);
//...if(CheckPasswort(playerid, inputtext) == 1) // Wir holen uns das Passwort aus der MySQL Datenbank und überprüfen es mit dem angegebenen passwort.
{
if(NotJoin == 1)
{
format(string, sizeof(string), "Du kannst dich erst nach %d Sekunden wieder einloggen.\n\nBitte warte eine Weile und gibt dann dein Accountpasswort ein.",OffPickup[StepID][OffZeit]);
ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "Login", string,"Login","Abbruch");
return 1;
}
strmid(PlayerInfo[playerid][pKey], inputtext, 0, strlen(inputtext), 255);
OnPlayerLogin(playerid); //Der Spieler wird "geladen", speich es werden seine Daten aus der Datenbank geholt und in variablen gespeichert um diese im Skript zu verwenden.
return 1;
}
else
{
ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "Los Santos Roleplay Community: Passwort Falsch", "Das eingegebene Passwort ist Falsch, bitte versuche es erneut.","Login","Verlassen");
return 1;
}stock CheckPasswort(playerid,password[])
{
new query[256],sendername[MAX_PLAYER_NAME],passwort[64];
GetPlayerName(playerid,sendername,sizeof(sendername));
mysql_real_escape_string(password, passwort);
mysql_real_escape_string(sendername, sendername);
format(query,sizeof(query),"SELECT `Password` FROM `users` WHERE `Name` = '%s' AND `Password` = MD5('%s')",sendername,passwort);
self_mysql_queryEx(query);
mysql_store_result();
if(mysql_num_rows())
{
mysql_free_result();
return true;
}
else
{
mysql_free_result();
return false;
}
}Beachte, dass du das "Password" Feld in der Tabelle "users" als VARCHAR Feld anlegen musst, mit 33 Zeichen (sicherheitshalber eins mehr, da EOS).
Sollte es weiterhin nicht gehen, poste bitte was im MySQL Log steht, und einen Screenshot der Daten in der Datenbank, nachdem du dich registriert hast.
-
Immernoch fehlerhaft...
Code
Alles anzeigen[19:31:03] CMySQLHandler::Query(SELECT * FROM `users` WHERE `Name` = 'McGarrett1') - Successfully executed. [19:31:03] >> mysql_store_result( Connection handle: 1 ) [19:31:03] CMySQLHandler::StoreResult() - Result was stored. [19:31:03] >> mysql_num_rows( Connection handle: 1 ) [19:31:03] CMySQLHandler::NumRows() - Returned 0 row(s) [19:31:03] >> mysql_free_result( Connection handle: 1 ) [19:31:03] CMySQLHandler::FreeResult() - Result was successfully free'd. [19:31:08] >> mysql_real_escape_string( Connection handle: 1 ) [19:31:08] CMySQLHandler::EscapeString(123456); - Escaped 6 characters to 123456. [19:31:08] >> mysql_query( Connection handle: 1 ) [19:31:08] CMySQLHandler::Query(INSERT INTO `users` (`Name`, `Password`) VALUES ('McGarrett1', MD5('123456'))) - Successfully executed. [19:31:08] >> mysql_query( Connection handle: 1 ) [19:31:09] CMySQLHandler::Query(UPDATE `users` SET `RegisterDatum`='1455823868' WHERE `Name`='McGarrett1') - Successfully executed. [19:31:09] >> mysql_query( Connection handle: 1 ) [19:31:09] CMySQLHandler::Query(UPDATE `users` SET `Password`='123456', `Level`='0', `AdminLevel`='0', `Quest`='0', `Namechange`='0', `krankenkasse`='0', `krankenzeit`='0', `DonateRank`='0', `UpgradePoints`='0', `ConnectedTime`='0', `Registered`='0', `Sex`='0', `Age`='0', `Origin`='0', `Muted`='0', `Respect`='0', `Gehalt`='0', `Money`='0', `Bank`='0', `Allowed`='0', `Crimes`='0', `Kills`='0', `sKills`='0', `Deaths`='0', `Arrested`='0', `ArrestTime`='0', `PhoneBook`='0', `LottoNr`='0', `Fishes`='0', `BiggestFish`='0', `Job`='0', `Paycheck`='0' WHERE `Name`='McGarrett1') - Successfully executed. [19:31:09] >> mysql_query( Connection handle: 1 ) [19:31:09] CMySQLHandler::Query(UPDATE `users` SET `HeadValue`='0', `Jailed`='0', `JailTime`='0', `Leader`='-1', `Member`='-1', `Rank`='0', `Skin`='101', `Vertragszeit`='5', `DetSkill`='0', `SexSkill`='0', `LawSkill`='0', `MechSkill`='0', `JackSkill`='0' WHERE `Name`='McGarrett1') - Successfully executed. [19:31:09] >> mysql_query( Connection handle: 1 ) [19:31:09] CMySQLHandler::Query(UPDATE `users` SET `CarSkill`='0', `NewsSkill`='0', `DrugsSkill`='0', `CookSkill`='0', `FishSkill`='0', `pSHealth`='50.0', `PhoneNr`='0', `House`='-1', `Hotel`='-1', `CarLic`='0', `FlyLic`='0', `BoatLic`='0', `FishLic`='0', `GunLic`='0', `Zollpass`='0' WHERE `Name`='McGarrett1') - Successfully executed. [19:31:09] >> mysql_query( Connection handle: 1 ) [19:31:09] CMySQLHandler::Query(UPDATE `users` SET `Gun1`='0', `Gun2`='0', `Gun3`='0', `Gun4`='0', `Ammo1`='0', `Ammo2`='0', `Ammo3`='0', `Ammo4`='0', `CarTime`='0', `PayDay`='0', `PayDayHad`='0', `CDPlayer`='0', `AlcoholPerk`='0', `PainKillerPerk`='0', `DrugPerk`='0', `MiserPerk`='0', `TraderPerk`='0', `Tutorial`='0', `Warnings`='0' WHERE `Name`='McGarrett1') - Successfully executed. [19:31:09] >> mysql_query( Connection handle: 1 ) [19:31:09] CMySQLHandler::Query(UPDATE `users` SET `Fuel`='0', `Married`='0', `MarriedTo`='Niemand', `WantedLevel`='0', `Spawn`='0', `SavedMaterials`='0', `SavedDrugs`='0', `SaveCodes`='0', `BikeLic`='0', `LKWLic`='0', `DonatorTime`='0', `WerberName`='Niemand', `FightingStyle`='0', `Handy`='0' WHERE `Name`='McGarrett1') - Successfully executed. [19:31:09] >> mysql_query( Connection handle: 1 ) [19:31:09] CMySQLHandler::Query(UPDATE `users` SET `OnDutySkin`='60', `CarLicPoints`='0', `BikeLicPoints`='0', `InviteSperre`='0', `warntime1`='0', `warntime2`='0', `Ticketsopen`='0', `DonatorTime`='0', `OldName`='Niemand', `ClientIP`='188.98.100.48', `OrgMember`='-1', `OrgLeader`='-1', `OrgName`='Keine' WHERE `Name`='McGarrett1') - Successfully executed. [19:31:17] >> mysql_real_escape_string( Connection handle: 1 ) [19:31:17] CMySQLHandler::EscapeString(123456); - Escaped 6 characters to 123456. [19:31:17] >> mysql_real_escape_string( Connection handle: 1 ) [19:31:17] CMySQLHandler::EscapeString(McGarrett1); - Escaped 10 characters to McGarrett1. [19:31:17] >> mysql_query( Connection handle: 1 ) [19:31:17] CMySQLHandler::Query(SELECT `Password` FROM `users` WHERE `Name` = 'McGarrett1' AND `Password` = MD5('123456')) - Successfully executed. [19:31:17] >> mysql_store_result( Connection handle: 1 ) [19:31:17] CMySQLHandler::StoreResult() - Result was stored. [19:31:17] >> mysql_num_rows( Connection handle: 1 ) [19:31:17] CMySQLHandler::NumRows() - Returned 0 row(s) [19:31:17] >> mysql_free_result( Connection handle: 1 ) [19:31:17] CMySQLHandler::FreeResult() - Result was successfully free'd.
Db:
Ich nutze mysql R5
-
Du überschreibst das Passwort bei deiner Speicherfunktion des Spielers mit dem ungehashten Passwort.
Füge dort auch noch das MD5 ein, oder poste die Funktion. -
Mal wieder spitzen arbeit von dir.... ich danke dir... ich hatte wohl vergessen eine sache zu hashen... daran lag es wohl... ich bin dir sehr dankbar
-
breadfish.de
Hat das Thema geschlossen.