Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

По регистрации.

Статус
В этой теме нельзя размещать новые ответы.

ToPsxmirex

Компетентный
Вообщем написал регистрацию с урока и решил поменять паблики с урока на паблики с мода. Всё получилось без ошибок после двух минут чистки ненужного хлама. Вообщем. Проблема в том, что когда регистрируешся, то сразу идёт авторизация и пароль считывает верно. Но вот если произайдёт рестарт сервера, то пароль считываться не будет. Пересмотрел всё. Понять не смог.

PHP:
public OnPlayerRegister(playerid, password[])
{
	if(IsPlayerConnected(playerid))
	{
			new string[64], pname[MAX_PLAYER_NAME], var[32];
			GetPlayerName(playerid, pname, sizeof(pname));
			format(string, sizeof(string), "Users/%s.ini", pname);
			new File: hFile = fopen(string, io_write);
			if (hFile)
			{
			    strmid(SI[playerid][pKey], password, 0, strlen(password), 255);
				format(var, 32, "Key = %s\n", SI[playerid][pKey]);fwrite(hFile, var);
				format(var, 32, "X = %.1f\n",SI[playerid][pX]);fwrite(hFile, var);
				format(var, 32, "Y = %.1f\n",SI[playerid][pY]);fwrite(hFile, var);
				format(var, 32, "Z = %.1f\n",SI[playerid][pZ]);fwrite(hFile, var);
				fclose(hFile), ACC[playerid] = 1;
			    D(playerid, 1, DIALOG_STYLE_PASSWORD, "Авторизация", LoginText, "Далее", "Выход");
			}
	}
	return 1;
}
PHP:
public OnPlayerLogin(playerid,password[])
{
    new string[64], pname[MAX_PLAYER_NAME], PassData[256], keytmp[256], valtmp[256],
        key[256], val[256], Data[256];
    GetPlayerName(playerid, pname, sizeof(pname));
	format(string, sizeof(string), "Users/%s.ini", pname);
	new File: UserFile = fopen(string, io_read);
	if(UserFile)
	{
	    fread(UserFile, PassData, sizeof(PassData));
	    keytmp = ini_GetKey(PassData);
	    if(strcmp(keytmp, "Key", true) == 0) valtmp = ini_GetValue( PassData ), strmid(SI[playerid][pKey], valtmp, 0, strlen(valtmp)-1, 255);
		if(strcmp(SI[playerid][pKey],password, true ) == 0 )
		{
  			while(fread(UserFile, Data, sizeof(Data)))
			{
				key = ini_GetKey(Data);
				if( strcmp( key , "Admin" , true ) == 0 ) { val = ini_GetValue( Data ); SI[playerid][pAdmin] = strval( val ); }
    			if( strcmp( key , "X" , true ) == 0 ) { val = ini_GetValue( Data ); SI[playerid][pX] = floatstr( val ); }
			    if( strcmp( key , "Y" , true ) == 0 ) { val = ini_GetValue( Data ); SI[playerid][pY] = floatstr( val ); }
			    if( strcmp( key , "Z" , true ) == 0 ) { val = ini_GetValue( Data ); SI[playerid][pZ] = floatstr( val ); }
		  	}
     		fclose(UserFile);
  		}
		else
    	{
		    if(WARNING[playerid] == 3) KM(playerid, "Сторожевой бот", "Не смог авторизоваться");
            else M(playerid, GREY, "* Пароль неверный."), WARNING[playerid] ++, D(playerid, 1, DIALOG_STYLE_PASSWORD, "Авторизация", LoginText, "Далее", "Выход");
		    fclose(UserFile);
            return 1;
    	}
		EM(playerid, 50);
        SendClientMessage(playerid, SIMPLE, "* Вы авторизовались на сервере.");
		LOGIN[playerid] = 1;
        SpawnPlayer(playerid);
	}
	return 1;
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу