Use mysql for register/load
#9

user system startpack
uses latest plugins and coding methods
PHP Code:
#include <bcrypt>           //https://sampforum.blast.hk/showthread.php?tid=453544 
#include <easyDialog>       //https://sampforum.blast.hk/showthread.php?tid=475838
#define BCRYPT_COST         12
#define easyDialogParams    response, listitem, inputtext[]
enum playerStatsVars{
    
Name[24],
    
bool:LoggedIn
};
new 
pStats[MAX_PLAYERS][playerStatsVars];
//for delayed kick message
KickEx(playerid,msg[120]){
    
SendClientMessage(playerid,-1,msg);
    return 
SetTimerEx("callKick",100,false,"d",playerid);
}
forward callKick(playerid);
public 
callKick(playerid){
    return 
Kick(playerid);
}
//getting username
getUserName(playerid){
    new 
s[24];
    
GetPlayerName(playerid,s,24);
    return 
s;
}
//this must be added under onplayerconnect for example
Dialog_Show(playeridRegisterPlayerDIALOG_STYLE_PASSWORD"account registration""account with such name doesn't exsist.\nfor registration enter password.""register""close");
//makes dialog creation easier
Dialog:RegisterPlayer(playerid,easyDialogParams){
    if(!
response){
        return 
KickEx(playerid,"you selected close option.");
    }
    if(!(
6<=strlen(inputtext)<=30)){
        
SendClientMessage(playerid,-1,"password must be between 6 to 30!");
        return 
1;
    }
    
//hashing password
    
bcrypt_hash(inputtextBCRYPT_COST"RegisterPlayer""d"playerid);
    return 
1;
}
//thread from password bcrypt
forward RegisterPlayer(playerid);
public 
RegisterPlayer(playerid){
    
//copies player name into array, so you don't need to call GetPlayerName, native functions are slower then variables
    
strmid(pStats[playerid][Name],getUserName(playerid),0,24,24);
    new 
s[400];
//no need to escape string, because user input isnt insert here
    
format(s,400,"insert into player_account(username,password) values('%s','%s')",pStats[playerid][Name],password);
    
mysql_tquery(serverCon,s,"threadRegisterPlayer","d",playerid);
    return 
1;
}
//thread from database
forward threadRegisterPlayer(playerid);
public 
threadRegisterPlayer(playerid){
    
SendClientMessage(playerid,-1,"account registered.");
    
pStats[playerid][LoggedIn]=true;
    return 
1;

Reply


Messages In This Thread
Use mysql for register/load - by OuDayas - 13.01.2019, 13:12
Re: Use mysql for register/load - by Jeffry - 13.01.2019, 13:20
Re: Use mysql for register/load - by OuDayas - 13.01.2019, 15:15
Re: Use mysql for register/load - by Jeffry - 13.01.2019, 15:55
Re: Use mysql for register/load - by OuDayas - 13.01.2019, 16:21
Re: Use mysql for register/load - by Jeffry - 13.01.2019, 17:51
Re: Use mysql for register/load - by OuDayas - 13.01.2019, 21:03
Re: Use mysql for register/load - by Jeffry - 14.01.2019, 19:52
Re: Use mysql for register/load - by codExpert - 14.01.2019, 20:40
Re: Use mysql for register/load - by OuDayas - 15.01.2019, 11:08
Re: Use mysql for register/load - by Jeffry - 15.01.2019, 18:15
Re: Use mysql for register/load - by OuDayas - 16.01.2019, 00:55
Re: Use mysql for register/load - by Jeffry - 16.01.2019, 16:54
Re: Use mysql for register/load - by OuDayas - 17.01.2019, 21:35
Re: Use mysql for register/load - by Jeffry - 19.01.2019, 11:37
Re: Use mysql for register/load - by OuDayas - 19.01.2019, 18:43
Re: Use mysql for register/load - by Stefhan - 20.01.2019, 02:28
Re: Use mysql for register/load - by Jeffry - 20.01.2019, 09:41
Re: Use mysql for register/load - by OuDayas - 20.01.2019, 12:35
Re: Use mysql for register/load - by Jeffry - 20.01.2019, 13:37
Re: Use mysql for register/load - by OuDayas - 20.01.2019, 14:35
Re: Use mysql for register/load - by Jeffry - 20.01.2019, 15:29
Re: Use mysql for register/load - by OuDayas - 20.01.2019, 16:07
Re: Use mysql for register/load - by Jeffry - 20.01.2019, 16:15
Re: Use mysql for register/load - by OuDayas - 20.01.2019, 19:27
Re: Use mysql for register/load - by SymonClash - 20.01.2019, 20:23
Re: Use mysql for register/load - by OuDayas - 20.01.2019, 20:39
Re: Use mysql for register/load - by SymonClash - 20.01.2019, 20:45
Re: Use mysql for register/load - by OuDayas - 20.01.2019, 20:55
Re: Use mysql for register/load - by SymonClash - 20.01.2019, 21:07
Re: Use mysql for register/load - by OuDayas - 20.01.2019, 21:47
Re: Use mysql for register/load - by SymonClash - 20.01.2019, 22:11
Re: Use mysql for register/load - by SymonClash - 21.01.2019, 09:30
Re: Use mysql for register/load - by OuDayas - 21.01.2019, 22:58

Forum Jump:


Users browsing this thread: 1 Guest(s)