31.05.2014, 20:45
Quote:
Que tal;
Espero alguien me pudiese ayudar con un pequeсo problema que tengo, ya hace tiempo que he estado creando un GM y pues ya todo esta bien solo que decidн agregarle una Encriptaciуn a la contraseсa lo que sucede es que asн como esta el cуdigo si encripta la contraseсa pero no guarda el nombre del jugador en la base de datos mysql... y de otra forma que lo tenia... guardaba el nombre del jugador pero no encriptaba la contraseсa Aqui dejo el DIALOG, STOCK, OnPlayerRegister PHP код:
PHP код:
PHP код:
|
pawn Код:
new tmppass[64];
strmid(tmppass, inputtext, 0, strlen(inputtext), 255);
OnPlayerRegister(playerid,inputtext);
analicemos el cуdigo de acб:
pawn Код:
public OnPlayerRegister(playerid, password[])
{
if(IsPlayerConnected(playerid))
{
MySQLCheck();
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
new escapedPassword[129];
WP_Hash(escapedPassword, sizeof(escapedPassword), password);
new newaccountsqlid = InsertarJugador(playername3, escapedPassword);
if (newaccountsqlid != 0)
{
//Datos para registro
}
else
{
SendClientMessage(playerid, COLOR_RED, "Ha ocurrido un error, desconectando.");
// Kick(playerid);
return 0;
}
}
return 0;
}
pawn Код:
stock InsertarJugador(pname[], password[])
{
new query[200], escapedname[ MAX_PLAYER_NAME ],escapedPassword[129];
mysql_real_escape_string( pname, escapedname );
WP_Hash(escapedPassword, sizeof(escapedPassword), password);
format(query, sizeof(query), "INSERT INTO "TABLENAME" (`"User_Name"`, `"P_Passswd"`) VALUES ('%s', '%s')", escapedname, escapedPassword);
mysql_query(query);
new newplayersid = E_Usuario(pname);
if (newplayersid != 0)
{
return newplayersid;
}
return 0;
}
Luego hasheas la contraseсa denuevo por lo cual tendrб muchнsimos mбs caracteres que antes y no entrarб en la base de datos cuando lo quieras enviar.
Lo que tendrнas que hacer serнa esto:
pawn Код:
public OnPlayerRegister(playerid, password[])
{
if(IsPlayerConnected(playerid))
{
MySQLCheck();
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
new newaccountsqlid = InsertarJugador(playername3, password);
if (newaccountsqlid != 0)
{
//Datos para registro
}
else
{
SendClientMessage(playerid, COLOR_RED, "Ha ocurrido un error, desconectando.");
// Kick(playerid);
return 0;
}
}
return 0;
}
pawn Код:
stock InsertarJugador(pname[], password[])
{
new query[200],escapedPassword[129];
WP_Hash(escapedPassword, sizeof(escapedPassword), password);
format(query, sizeof(query), "INSERT INTO "TABLENAME" (`"User_Name"`, `"P_Passswd"`) VALUES ('%s', '%s')", pname, escapedPassword);
mysql_query(query);
new newplayersid = E_Usuario(pname);
if (newplayersid != 0)
{
return newplayersid;
}
return 0;
}