wrong password
#1

hello i got a problem with player data save i register normaly but when i login it said invalid password what happen?

PHP код:
#include <a_samp> 
#include <YSI\y_ini> 
#define DIALOG_REGISTER 1 
#define DIALOG_LOGIN 2 
#define DIALOG_SUCCESS_1 3 
#define DIALOG_SUCCESS_2 4 
#define PATH "test/Users/%s.ini" 
#define COL_WHITE "{FFFFFF}" 
#define COL_RED "{F81414}" 
#define COL_GREEN "{00FF22}" 
#define COL_LIGHTBLUE "{00CED1}" 
enum pInfo 
{ 
    
pPass, 
    
pCash, 
    
pAdmin, 
    
pKills, 
    
pDeaths 
} 
new 
PlayerInfo[MAX_PLAYERS][pInfo]; 
forward LoadUser_data(playerid,name[],value[]); 
public 
LoadUser_data(playerid,name[],value[]) 
{ 
    
INI_Int("Password",PlayerInfo[playerid][pPass]); 
    
INI_Int("Cash",PlayerInfo[playerid][pCash]); 
    
INI_Int("Admin",PlayerInfo[playerid][pAdmin]); 
    
INI_Int("Kills",PlayerInfo[playerid][pKills]); 
    
INI_Int("Deaths",PlayerInfo[playerid][pDeaths]); 
    return 
1; 
} 
stock UserPath(playerid) 
{ 
    new 
string[128],playername[MAX_PLAYER_NAME]; 
    
GetPlayerName(playerid,playername,sizeof(playername)); 
    
format(string,sizeof(string),PATH,playername); 
    return 
string; 
} 
/*Credits to Dracoblue*/ 
stock udb_hash(buf[]) { 
    new 
length=strlen(buf); 
    new 
s1 = 1; 
    new 
s2 = 0; 
    new 
n; 
    for (
n=0; n<length; n++) 
    { 
       
s1 = (s1 + buf[n]) % 65521; 
       
s2 = (s2 + s1)     % 65521; 
    } 
    return (
s2 << 16) + s1; 
} 
main() 
{ 
        print(
"\n----------------------------------"); 
        print(
" Blank Gamemode by your name here"); 
        print(
"----------------------------------\n"); 
} 
public 
OnGameModeInit() 
{ 
        
SetGameModeText("Blank Script"); 
        return 
1; 
} 
public 
OnGameModeExit() 
{ 
        return 
1; 
} 
public 
OnPlayerRequestClass(playerid, classid) 
{ 
        return 
1; 
} 
public 
OnPlayerConnect(playerid) 
{ 
    if(
fexist(UserPath(playerid))) 
    { 
        
INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid); 
        
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_WHITE"Type your password below to login.","Login","Quit"); 
    } 
    else 
    { 
        
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_WHITE"Registering...",""COL_WHITE"Type your password below to register a new account.","Register","Quit"); 
    } 
    return 
1; 
} 
public 
OnPlayerDisconnect(playerid, reason) 
{ 
    new 
INI:File = INI_Open(UserPath(playerid)); 
    
INI_SetTag(File,"data"); 
    
INI_WriteInt(File,"Cash",GetPlayerMoney(playerid)); 
    
INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]); 
    
INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]); 
    
INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]); 
    
INI_Close(File); 
    return 
1; 
} 
public 
OnPlayerSpawn(playerid) 
{ 
        return 
1; 
} 
public 
OnPlayerDeath(playerid, killerid, reason) 
{ 
    
PlayerInfo[killerid][pKills]++; 
    
PlayerInfo[playerid][pDeaths]++; 
    return 
1; 
} 
public 
OnVehicleSpawn(vehicleid) 
{ 
        return 
1; 
} 
public 
OnVehicleDeath(vehicleid, killerid) 
{ 
        return 
1; 
} 
public 
OnPlayerText(playerid, text[]) 
{ 
        return 
1; 
} 
public 
OnPlayerCommandText(playerid, cmdtext[]) 
{ 
        if (
strcmp("/mycommand", cmdtext, true, 10) == 0) 
        { 
                
// Do something here 
                
return 1; 
        } 
        return 
0; 
} 
public 
OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) 
{ 
        return 
1; 
} 
public 
OnPlayerExitVehicle(playerid, vehicleid) 
{ 
        return 
1; 
} 
public 
OnPlayerStateChange(playerid, newstate, oldstate) 
{ 
        return 
1; 
} 
public 
OnPlayerEnterCheckpoint(playerid) 
{ 
        return 
1; 
} 
public 
OnPlayerLeaveCheckpoint(playerid) 
{ 
        return 
1; 
} 
public 
OnPlayerEnterRaceCheckpoint(playerid) 
{ 
        return 
1; 
} 
public 
OnPlayerLeaveRaceCheckpoint(playerid) 
{ 
        return 
1; 
} 
public 
OnRconCommand(cmd[]) 
{ 
        return 
1; 
} 
public 
OnPlayerRequestSpawn(playerid) 
{ 
        return 
1; 
} 
public 
OnObjectMoved(objectid) 
{ 
        return 
1; 
} 
public 
OnPlayerObjectMoved(playerid, objectid) 
{ 
        return 
1; 
} 
public 
OnPlayerPickUpPickup(playerid, pickupid) 
{ 
        return 
1; 
} 
public 
OnVehicleMod(playerid, vehicleid, componentid) 
{ 
        return 
1; 
} 
public 
OnVehiclePaintjob(playerid, vehicleid, paintjobid) 
{ 
        return 
1; 
} 
public 
OnVehicleRespray(playerid, vehicleid, color1, color2) 
{ 
        return 
1; 
} 
public 
OnPlayerSelectedMenuRow(playerid, row) 
{ 
        return 
1; 
} 
public 
OnPlayerExitedMenu(playerid) 
{ 
        return 
1; 
} 
public 
OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) 
{ 
        return 
1; 
} 
public 
OnPlayerKeyStateChange(playerid, newkeys, oldkeys) 
{ 
        return 
1; 
} 
public 
OnRconLoginAttempt(ip[], password[], success) 
{ 
        return 
1; 
} 
public 
OnPlayerUpdate(playerid) 
{ 
        return 
1; 
} 
public 
OnPlayerStreamIn(playerid, forplayerid) 
{ 
        return 
1; 
} 
public 
OnPlayerStreamOut(playerid, forplayerid) 
{ 
        return 
1; 
} 
public 
OnVehicleStreamIn(vehicleid, forplayerid) 
{ 
        return 
1; 
} 
public 
OnVehicleStreamOut(vehicleid, forplayerid) 
{ 
        return 
1; 
} 
public 
OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) 
{ 
    switch( 
dialogid ) 
    { 
        case 
DIALOG_REGISTER: 
        { 
            if (!
response) return Kick(playerid); 
            if(
response) 
            { 
                if(!
strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_WHITE"Registering...",""COL_RED"You have entered an invalid password.\n"COL_WHITE"Type your password below to register a new account.","Register","Quit"); 
                new 
INI:File = INI_Open(UserPath(playerid)); 
                
INI_SetTag(File,"data"); 
                
INI_WriteInt(File,"Password",udb_hash(inputtext)); 
                
INI_WriteInt(File,"Cash",0); 
                
INI_WriteInt(File,"Admin",0); 
                
INI_WriteInt(File,"Kills",0); 
                
INI_WriteInt(File,"Deaths",0); 
                
INI_Close(File); 
                
SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0); 
                
SpawnPlayer(playerid); 
                
ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"Great! Your Y_INI system works perfectly. Relog to save your stats!","Ok",""); 
                        } 
        } 
        case 
DIALOG_LOGIN: 
        { 
            if ( !
response ) return Kick ( playerid ); 
            if( 
response ) 
            { 
                if(
udb_hash(inputtext) == PlayerInfo[playerid][pPass]) 
                { 
                    
INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid); 
                    
GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]); 
                                        
ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"You have successfully logged in!","Ok",""); 
                } 
                else 
                { 
                    
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_RED"You have entered an incorrect password.\n"COL_WHITE"Type your password below to login.","Login","Quit"); 
                } 
                return 
1; 
            } 
        } 
    } 
    return 
1; 
} 
public 
OnPlayerClickPlayer(playerid, clickedplayerid, source) 
{ 
        return 
1; 
} 
Reply
#2

Could you try printing the value of the password loaded from the account's file when you login? I figure it has something to do with the fact that you try to load it as an integer, while it is a string.
Reply
#3

this problem is only when i Start Server In Windows , in linux gamemodes work good
Reply
#4

PHP код:
INI_Int("Password",PlayerInfo[playerid][pPass]); 
- to -
PHP код:
INI_String("Password", PlayerInfo[playerid][pPass],129); 
______________
PHP код:
INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid); 
- to -
PHP код:
INI_ParseFile(UserPath(playerid), "LoadUser_data", .bExtra = true, .extra = playerid, .bPassTag = true); 
______________
PHP код:
forward LoadUser_data(playerid,name[],value[]);  
public 
LoadUser_data(playerid,name[],value[]) 
- to -
PHP код:
forward LoadUser_data(playerid, tag[], name[], value[]);
public 
LoadUser_data(playerid, tag[], name[], value[]) 
Then try again and inform us if its working or no.
Reply
#5

1nspire, There's a lot of wrong things with yours.

____________________
PHP код:
new str[128]; 
INI_String("Password", PlayerInfo[playerid][pPass],129); 
to
PHP код:
INI_String("Password", PlayerInfo[playerid][pPass], 128); 
____________________
PHP код:
INI_ParseFile(UserPath(playerid), "LoadUser_user", .bExtra = true, .extra = playerid, .bPassTag = true); 
to
PHP код:
INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid); //This will load all forwards named LoadUser_* 
____________________
PHP код:
forward LoadUser_data(playerid, tag[], name[], value[]); 
public 
LoadUser_data(playerid, tag[], name[], value[]) 
to
PHP код:
forward LoadUser_data(playerid, name[], value[]); 
public 
LoadUser_data(playerid, name[], value[])   // data here mean the tag. 
____________________
Please test your code before helping someone.
there's %s and _data for a reason.
Reply
#6

Quote:
Originally Posted by Meller
Please test your code before helping someone.
there's %s and _data for a reason.
The code is tested and working like a charm, I had the same problem as him and this fixed it for me.
Please, test my code before judging.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)