Abend,
ich habe mir eben das My Virtual Dream Script ([Veröff.]My Virtual Dream) heruntergeladen wo die Passwörter leider nicht verschlüsselt werden.
Das ganze wollte ich mit MD5 machen, da das UCP auch damit arbeitet.
Das ganze habe ich beim Register Dialog folgendermaßen gelöst:
if(dialogid == DIALOG_REG)
{
if(response)
{
if(response && strlen(inputtext) > 0)
{
new query[265], playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
format(query, sizeof(query), "INSERT INTO `accounts` (name,passwort) VALUES ('%s',MD5('%s'))", playername, inputtext);
mysql_query(query);
format(query, sizeof(query), "INSERT INTO `PhoneContact` (name) VALUES ('%s')", playername);
mysql_query(query);
gPlayerLogged[playerid] = 1;
SaveMysqlPlayer(playerid);
//WBB_AddUser(playername,"emailstring",inputtext,1); // NAME | EMAIL | PASSWORT
//WBB_SetUserToGroup(playername,3); // NAME | RankID
//WBB_EnableUser(playername); // NAME
ShowUserDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Bitte logge dich in deinen Account ein!","Login","Abbrechen");
}
else
{
ShowUserDialog(playerid,DIALOG_REG,DIALOG_STYLE_PASSWORD,"Account erstellen","Gib das Passwort für deinen Account ein:","OK","Abbrechen");
}
if(response == 0)
{
Kick(playerid);
}
}
if(response == 0)
{
SelectTextDraw(playerid, 0x33CCFFAA);
}
}
Das ganze funktioniert auch und die Passwörter werden verschlüsselt.
Das Problem ist der Login.
if(dialogid == DIALOG_LOGIN)
{
if(response && strlen(inputtext) > 0)
{
new string[512],name[32];
GetPlayerName(playerid,SpielerInfo[playerid][Name],32);
mysql_real_escape_string(SpielerInfo[playerid][Name],name);
format(string,sizeof(string),"SELECT passwort FROM accounts WHERE name = '%s'",name);
mysql_query(string);
mysql_store_result();
mysql_fetch_row(string);
mysql_free_result();
if(strcmp(inputtext,string,false)!=0)
{
format(string,sizeof(string),"Willkommen bei %s\n\nDein Passwort war nicht richtig!\nBitte Logge dich mit \ndein richtiges Passwort ein.",SERVERNAME);
ShowUserDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login",string,"Einloggen","Abbrechen");
return 1;
}
format(string, sizeof(string), "SELECT * FROM `accounts` WHERE `name`='%s'",name);
mysql_query(string);
mysql_store_result();
mysql_fetch_row(string);
mysql_free_result();
printf("Spieler %s wird geladen", SpielerInfo[playerid][Name]);
for(new i=0;i<166;i++)
Ich habe es bereits so versucht:
aus:
format(string,sizeof(string),"SELECT passwort FROM accounts WHERE name = '%s'",name);
wurde z. B.:
format(string,sizeof(string),"SELECT * FROM accounts WHERE name = '%s' AND passwort = MD5('%s')",name, inputtext);
Bei dem einen Versuch funktioniert weder das normale Passwort noch das verschlüsselte.
Bei der anderen konnte man das verschlüsselte Passwort eingeben und es funktionierte. Bei dem normalen Passwort aber nicht.
Ich weiß nicht wie ich das sonst machen soll, kann mir vielleicht jemand helfen?
Viele Grüße & Vielen Dank im Voraus!