Перейти к содержанию
Авторизация  
v-gondurov

адм

Рекомендуемые сообщения

v-gondurov

проблема с авторизацией как администратор пишу команду alodin для авторизации и нечего не происходит и админка слетает

вот сама команда. и лог mysql

[15:56:15] [ERROR] mysql_connect - empty connection data specified
[15:56:15] [ERROR] "mysql_errno" - invalid connection handle (id: 1)
[15:57:07] [ERROR] "mysql_tquery" - invalid connection handle (id: 0)
[15:57:20] [ERROR] "mysql_tquery" - invalid connection handle (id: 0)
CMD:alogin(playerid, params[])
{
    if(GetPVarInt(playerid, "alogin_timer") > gettime()) return SendClientMessage(playerid, COLOR_GREY, "Не флуди");
    else if(gAdminLogged[playerid]) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Вы уже авторизовались как администратор!");
 	new string[128];
	format(string, sizeof(string), "SELECT * FROM "T_ADMIN" WHERE name = '%s'", GetName(playerid));
	mysql_tquery(dbHandle, string, "@Alogin", "is", playerid, GetName(playerid));
 	SetPVarInt(playerid, "alogin_timer", gettime()+3);
 	return 1;
}
Изменено пользователем v-gondurov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Shadows

У вас в mysql_connect(...) какие-то аргументы неправильно передаются. Покажите mysql_connect и дефайны, которые в нём используются, если есть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
v-gondurov

..


@16Shadows,

    #if MYSQL_R41_2 == true
    
    /*if(GetString(bind, "127.0.0.1"))
	{
	    dbHandle = mysql_connect(LOCAL_SQL_HOST, LOCAL_SQL_USER, LOCAL_SQL_PASS, LOCAL_SQL_DB);
	    gTestServer = true;
	}*/
	dbHandle = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS, SQL_DB);

	mysql_log(ERROR | WARNING);
	
	#else
	
    /*if(GetString(bind, "127.0.0.1"))
	{
	    dbHandle = mysql_connect(LOCAL_SQL_HOST, LOCAL_SQL_USER, LOCAL_SQL_DB, LOCAL_SQL_PASS);
	    gTestServer = true;
	}*/
	dbHandle = mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
	
	mysql_log(LOG_WARNING | LOG_ERROR);
	
	#endif
	
    if(mysql_errno() == -1)
    {
        print("  MySQL connection: FALSE\n");
    }
    else
    {
        print("  MySQL connection: TRUE\n");

		mysql_tquery(dbHandle, "SET CHARACTER SET 'utf8'", "", "");
	    mysql_tquery(dbHandle, "SET NAMES 'utf8'", "", "");
	    mysql_tquery(dbHandle, "SET character_set_client = 'cp1251'", "", "");
	    mysql_tquery(dbHandle, "SET character_set_connection = 'cp1251'", "", "");
	    mysql_tquery(dbHandle, "SET character_set_results = 'cp1251'", "", "");
	    mysql_tquery(dbHandle, "SET SESSION collation_connection = 'utf8_general_ci'", "", "");
		
		mysql_tquery(dbHandle, "SELECT * FROM "T_BIZ" ORDER BY "T_BIZ".id ASC ", "@LoadBiz", "");
		mysql_tquery(dbHandle, "SELECT * FROM "T_HOUSE" ORDER BY "T_HOUSE".id ASC ", "@LoadHouse", "");
		mysql_tquery(dbHandle, "SELECT * FROM "T_MAFIA"", "@LoadMafia", "");
		mysql_tquery(dbHandle, "SELECT * FROM "T_GANG"", "@LoadGang", "");
		mysql_tquery(dbHandle, "SELECT * FROM "T_GANGZONE"", "@LoadGZ", "");
		mysql_tquery(dbHandle, "SELECT * FROM "T_ATM"", "@LoadATM", "");
		mysql_tquery(dbHandle, "SELECT * FROM "T_FAMILY" ORDER BY "T_FAMILY".id ASC ", "@LoadFamily", "");
    } 
Изменено пользователем v-gondurov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Shadows

Проверьте строки с

#define SQL_HOST "127.0.0.1"
#define SQL_USER "user"
#define SQL_DB "db" 
Имели подобный вид.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
v-gondurov

@16Shadows,с этим проблему вроде решил mysql_Log не создается. а сейчас проблема с админкой когда пишу команду /alogin то админка тут же слетает 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Shadows

Покажите public @Alogin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
v-gondurov
@Alogin(playerid, name[]);

@Alogin(playerid, name[])

{

    #if MYSQL_R41_2 == true

    

new rows;

cache_get_row_count(rows);

if(!rows)

{

if(pInfo[playerid][pAdmin] > ADM_NONE)

{

pInfo[playerid][pAdmin] = ADM_NONE;

MysqlUpdatePlayerInt(playerid, "admin", pInfo[playerid][pAdmin]);

}

return 1;

}

new Password[16];

cache_get_value_name(0, "password", Password);

if(GetString(Password, "qwerty"))

{

SetPVarInt(playerid, "type_alogin", 1);

ShowPlayerDialog(playerid, dAdminLogin, DIALOG_STYLE_PASSWORD, "{FFCC00}Регистрация администратора", "{FFFFFF}Введите пароль, который будет от панели администратора\n\n{63BD4E}Примечание:\n\t- Пароль должен состоять из латинских букв и цифр\n\t- Размер пароля от 6 до 15 символов", "Принять", "Отмена");

}

else

{

SetPVarInt(playerid, "type_alogin", 0);

ShowPlayerDialog(playerid, dAdminLogin, DIALOG_STYLE_PASSWORD, "{FFCC00}Доступ администратора", "{FFFFFF}Введите Ваш пароль от панели администратора", "Принять", "Отмена");

}

 

#else

 

new rows, fields;

cache_get_data(rows, fields);

if(!rows)

{

if(pInfo[playerid][pAdmin] > ADM_NONE)

{

pInfo[playerid][pAdmin] = ADM_NONE;

MysqlUpdatePlayerInt(playerid, "admin", pInfo[playerid][pAdmin]);

}

return 1;

}

new Password[16];

cache_get_field_content(0, "password", Password, dbHandle);

if(GetString(Password, "qwerty"))

{

SetPVarInt(playerid, "type_alogin", 1);

ShowPlayerDialog(playerid, dAdminLogin, DIALOG_STYLE_PASSWORD, "{FFCC00}Регистрация администратора", "{FFFFFF}Введите пароль, который будет от панели администратора\n\n{63BD4E}Примечание:\n\t- Пароль должен состоять из латинских букв и цифр\n\t- Размер пароля от 6 до 15 символов", "Принять", "Отмена");

}

else

{

SetPVarInt(playerid, "type_alogin", 0);

ShowPlayerDialog(playerid, dAdminLogin, DIALOG_STYLE_PASSWORD, "{FFCC00}Доступ администратора", "{FFFFFF}Введите Ваш пароль от панели администратора", "Принять", "Отмена");

}

 

#endif

 

return 1;

}

 

@AloginReg(playerid, name[]);

@AloginReg(playerid, name[])

{

    #if MYSQL_R41_2 == true

 

new rows;

cache_get_row_count(rows);

if(!rows) return 1;

new inputtext[16];

GetPVarString(playerid, "inputtext", inputtext, sizeof(inputtext));

mysql_query_string[0] = EOS;

mysql_format(dbHandle, mysql_query_string, sizeof(mysql_query_string), "UPDATE "T_ADMIN" SET password = '%s' WHERE name = '%s' LIMIT 1", inputtext, GetName(playerid));

mysql_tquery(dbHandle, mysql_query_string, "", "");

gAdminLogged[playerid] = true;

new string[144];

format(string, sizeof(string), "Ваш пароль администратора: {FFFFFF}%s", inputtext);

SendClientMessage(playerid, COLOR_GREEN, string);

SendClientMessage(playerid, COLOR_GREEN, "Рекомендуется сделать скриншот. Клавиша: {ffffff}F8");

cache_get_value_index_int(0, 2, pInfo[playerid][pAdmin]);

MysqlUpdatePlayerInt(playerid, "admin", pInfo[playerid][pAdmin]);

static const Admin_Names[8][24] = {"Хелпер","Модератор","Ст.Модератор","Администратор","Ст.Администратор","Зам.Гл.Администратора","Гл.Администратор","Руководитель"};

format(string, sizeof(string), "Вы авторизовались как %s", Admin_Names[pInfo[playerid][pAdmin]-1]);

  SendClientMessage(playerid, COLOR_ORANGE, string);

if(pInfo[playerid][pAdmin] < ADM_FOUNDER)

  {

      new country[64], city[64];

GetIPCountry(pInfo[playerid][pLastIP], country, sizeof(country));

GetIPCity(pInfo[playerid][pLastIP], city, sizeof(city));

      if(!pInfo[playerid][pCheckCode]) format(string, sizeof(string), "[A] %s %s[%i] авторизовал%s без граф.ключа [iP:%s (%s %s)]", Admin_Names[pInfo[playerid][pAdmin]-1], GetName(playerid), playerid, (pInfo[playerid][pSex]==1)?("ся"):("ась"), pInfo[playerid][pIP], country, city);

      else format(string, sizeof(string), "[A] %s %s[%i] авторизовал%s [iP:%s (%s %s)]", Admin_Names[pInfo[playerid][pAdmin]-1], GetName(playerid), playerid, (pInfo[playerid][pSex]==1)?("ся"):("ась"), pInfo[playerid][pIP], country, city);

SendAdminMessage(0xFFCC00FF, string);

  }

mysql_query_string[0] = EOS;

format(mysql_query_string, 128, "UPDATE "T_ADMIN" SET last_connect = CURDATE() WHERE name = '%s' LIMIT 1", GetName(playerid));

mysql_tquery(dbHandle, mysql_query_string, "", "");

 

#else

 

new rows, fields;

cache_get_data(rows, fields);

if(!rows) return 1;

new inputtext[16];

GetPVarString(playerid, "inputtext", inputtext, sizeof(inputtext));

mysql_query_string[0] = EOS;

mysql_format(dbHandle, mysql_query_string, sizeof(mysql_query_string), "UPDATE "T_ADMIN" SET password = '%s' WHERE name = '%s' LIMIT 1", inputtext, GetName(playerid));

mysql_tquery(dbHandle, mysql_query_string, "", "");

gAdminLogged[playerid] = true;

new string[144];

format(string, sizeof(string), "Ваш пароль администратора: {FFFFFF}%s", inputtext);

SendClientMessage(playerid, COLOR_GREEN, string);

SendClientMessage(playerid, COLOR_GREEN, "Рекомендуется сделать скриншот. Клавиша: {ffffff}F8");

pInfo[playerid][pAdmin] = cache_get_row_int(0, 2);

MysqlUpdatePlayerInt(playerid, "admin", pInfo[playerid][pAdmin]);

static const Admin_Names[8][24] = {"Хелпер","Модератор","Ст.Модератор","Администратор","Ст.Администратор","Зам.Гл.Администратора","Гл.Администратор","Руководитель"};

format(string, sizeof(string), "Вы авторизовались как %s", Admin_Names[pInfo[playerid][pAdmin]-1]);

  SendClientMessage(playerid, COLOR_ORANGE, string);

if(pInfo[playerid][pAdmin] < ADM_FOUNDER)

  {

      new country[64], city[64];

GetIPCountry(pInfo[playerid][pLastIP], country, sizeof(country));

GetIPCity(pInfo[playerid][pLastIP], city, sizeof(city));

      if(!pInfo[playerid][pCheckCode]) format(string, sizeof(string), "[A] %s %s[%i] авторизовал%s без граф.ключа [iP:%s (%s %s)]", Admin_Names[pInfo[playerid][pAdmin]-1], GetName(playerid), playerid, (pInfo[playerid][pSex]==1)?("ся"):("ась"), pInfo[playerid][pIP], country, city);

      else format(string, sizeof(string), "[A] %s %s[%i] авторизовал%s [iP:%s (%s %s)]", Admin_Names[pInfo[playerid][pAdmin]-1], GetName(playerid), playerid, (pInfo[playerid][pSex]==1)?("ся"):("ась"), pInfo[playerid][pIP], country, city);

SendAdminMessage(0xFFCC00FF, string);

  }

mysql_query_string[0] = EOS;

format(mysql_query_string, 128, "UPDATE "T_ADMIN" SET last_connect = CURDATE() WHERE name = '%s' LIMIT 1", GetName(playerid));

mysql_tquery(dbHandle, mysql_query_string, "", "");

 

#endif

 

return 1;

}

 

@AloginAuth(playerid);

@AloginAuth(playerid)

{

    #if MYSQL_R41_2 == true

    

new rows;

cache_get_row_count(rows);

if(!rows)

{

SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Неверный пароль!");

SetPVarInt(playerid, "attempt_password", GetPVarInt(playerid, "attempt_password")+1);

if(GetPVarInt(playerid, "attempt_password")>3)

{

DeletePVar(playerid, "attempt_password");

return SKick(playerid, 2112);

}

}

else

{

gAdminLogged[playerid] = true;

cache_get_value_index_int(0, 0, AdminInfo[playerid][admID]);

cache_get_value_index_int(0, 2, pInfo[playerid][pAdmin]);

cache_get_value_index_int(0, 7, AdminInfo[playerid][admGoto]);

    cache_get_value_index_int(0, 8, AdminInfo[playerid][admGethere]);

    cache_get_value_index_int(0, 9, AdminInfo[playerid][admSpectate]);

    if(AdminInfo[playerid][admPlayTime] == 0)

    {

        new who_load[32];

format(who_load, 32, "online_%s", getDay());

if(GetString(who_load,"online_monday")) cache_get_value_index_int(0,10,AdminInfo[playerid][admPlayTime]);

else if(GetString(who_load,"online_tuesday")) cache_get_value_index_int(0,11,AdminInfo[playerid][admPlayTime]);

else if(GetString(who_load,"online_wednesday")) cache_get_value_index_int(0,12,AdminInfo[playerid][admPlayTime]);

else if(GetString(who_load,"online_thursday")) cache_get_value_index_int(0,13,AdminInfo[playerid][admPlayTime]);

else if(GetString(who_load,"online_friday")) cache_get_value_index_int(0,14,AdminInfo[playerid][admPlayTime]);

else if(GetString(who_load,"online_saturday")) cache_get_value_index_int(0,15,AdminInfo[playerid][admPlayTime]);

else if(GetString(who_load,"online_sunday")) cache_get_value_index_int(0,16,AdminInfo[playerid][admPlayTime]);

}

  cache_get_value_index_int(0, 17, AdminInfo[playerid][admKicked]); // kicked

  cache_get_value_index(0, 18, AdminInfo[playerid][admKickedReason], 32); // kicked_reason

  cache_get_value_index_int(0, 19, AdminInfo[playerid][admSKicked]); // skicked

cache_get_value_index_int(0, 20, AdminInfo[playerid][admWarned]); // warned

  cache_get_value_index(0, 21, AdminInfo[playerid][admWarnedReason], 32); // warned_reason

  cache_get_value_index_int(0, 22, AdminInfo[playerid][admOffWarned]); // offwarned

  cache_get_value_index(0, 23, AdminInfo[playerid][admOffWarnedReason], 32); // offwarned_reason

  cache_get_value_index_int(0, 24, AdminInfo[playerid][admBaned]); // baned

  cache_get_value_index(0, 25, AdminInfo[playerid][admBanedReason], 32); // baned_reason

  cache_get_value_index_int(0, 26, AdminInfo[playerid][admOffBaned]); // offbaned

  cache_get_value_index(0, 27, AdminInfo[playerid][admOffBanedReason], 32); // offbaned_reason

  cache_get_value_index_int(0, 28, AdminInfo[playerid][admMuted]); // muted

  cache_get_value_index(0, 29, AdminInfo[playerid][admMutedReason], 32); // muted_reason

  cache_get_value_index_int(0, 30, AdminInfo[playerid][admAnsed]); // ansed

  cache_get_value_index_int(0, 31, AdminInfo[playerid][admInfoNewPlayer]); // a_infonewpl

  static const Admin_Names[8][24] = {"Хелпер","Модератор","Ст.Модератор","Администратор","Ст.Администратор","Зам.Гл.Администратора","Гл.Администратор","Руководитель"};

        new string[144];

format(string, sizeof(string), "Вы авторизовались как %s", Admin_Names[pInfo[playerid][pAdmin]-1]);

  SendClientMessage(playerid, COLOR_ORANGE, string);

  if(pInfo[playerid][pAdmin] < ADM_FOUNDER)

{

    new country[64], city[64];

GetIPCountry(pInfo[playerid][pLastIP], country, sizeof(country));

GetIPCity(pInfo[playerid][pLastIP], city, sizeof(city));

    if(!pInfo[playerid][pCheckCode]) format(string, sizeof(string), "[A] %s %s[%i] авторизовал%s без граф.ключа [iP:%s (%s %s)]", Admin_Names[pInfo[playerid][pAdmin]-1], GetName(playerid), playerid, (pInfo[playerid][pSex]==1)?("ся"):("ась"), pInfo[playerid][pIP], country, city);

    else format(string, sizeof(string), "[A] %s %s[%i] авторизовал%s [iP:%s (%s %s)]", Admin_Names[pInfo[playerid][pAdmin]-1], GetName(playerid), playerid, (pInfo[playerid][pSex]==1)?("ся"):("ась"), pInfo[playerid][pIP], country, city);

SendAdminMessage(0xFFCC00FF, string);

}

  mysql_query_string[0] = EOS;

format(mysql_query_string, 128, "UPDATE "T_ADMIN" SET last_connect = CURDATE() WHERE name = '%s' LIMIT 1", GetName(playerid));

mysql_tquery(dbHandle, mysql_query_string, "", "");

}

 

#else

 

new rows, fields;

cache_get_data(rows, fields);

if(!rows)

{

SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Неверный пароль!");

SetPVarInt(playerid, "attempt_password", GetPVarInt(playerid, "attempt_password")+1);

if(GetPVarInt(playerid, "attempt_password")>3)

{

DeletePVar(playerid, "attempt_password");

return SKick(playerid, 2112);

}

}

else

{

gAdminLogged[playerid] = true;

AdminInfo[playerid][admID] = cache_get_row_int(0, 0);

pInfo[playerid][pAdmin] = cache_get_row_int(0, 2);

AdminInfo[playerid][admGoto] = cache_get_row_int(0, 7);

    AdminInfo[playerid][admGethere] = cache_get_row_int(0, 8);

    AdminInfo[playerid][admSpectate] = cache_get_row_int(0, 9);

    if(AdminInfo[playerid][admPlayTime] == 0)

    {

    new who_load[32];

format(who_load, 32, "online_%s", getDay());

if(GetString(who_load,"online_monday")) AdminInfo[playerid][admPlayTime] = cache_get_row_int(0,10);

else if(GetString(who_load,"online_tuesday")) AdminInfo[playerid][admPlayTime] = cache_get_row_int(0,11);

else if(GetString(who_load,"online_wednesday")) AdminInfo[playerid][admPlayTime] = cache_get_row_int(0,12);

else if(GetString(who_load,"online_thursday")) AdminInfo[playerid][admPlayTime] = cache_get_row_int(0,13);

else if(GetString(who_load,"online_friday")) AdminInfo[playerid][admPlayTime] = cache_get_row_int(0,14);

else if(GetString(who_load,"online_saturday")) AdminInfo[playerid][admPlayTime] = cache_get_row_int(0,15);

else if(GetString(who_load,"online_sunday")) AdminInfo[playerid][admPlayTime] = cache_get_row_int(0,16);

}

    AdminInfo[playerid][admKicked] = cache_get_row_int(0, 17); // kicked

  cache_get_row(0, 18, AdminInfo[playerid][admKickedReason], 32); // kicked_reason

  AdminInfo[playerid][admSKicked] = cache_get_row_int(0, 19); // skicked

AdminInfo[playerid][admWarned] = cache_get_row_int(0, 20); // warned

  cache_get_row(0, 21, AdminInfo[playerid][admWarnedReason], 32); // warned_reason

  AdminInfo[playerid][admOffWarned] = cache_get_row_int(0, 22); // offwarned

  cache_get_row(0, 23, AdminInfo[playerid][admOffWarnedReason], 32); // offwarned_reason

  AdminInfo[playerid][admBaned] = cache_get_row_int(0, 24); // baned

  cache_get_row(0, 25, AdminInfo[playerid][admBanedReason], 32); // baned_reason

  AdminInfo[playerid][admOffBaned] = cache_get_row_int(0, 26); // offbaned

  cache_get_row(0, 27, AdminInfo[playerid][admOffBanedReason], 32); // offbaned_reason

  AdminInfo[playerid][admMuted] = cache_get_row_int(0, 28); // muted

  cache_get_row(0, 29, AdminInfo[playerid][admMutedReason], 32); // muted_reason

  AdminInfo[playerid][admAnsed] = cache_get_row_int(0, 30); // ansed

AdminInfo[playerid][admInfoNewPlayer] = cache_get_row_int(0, 31); // a_infonewpl

  static const Admin_Names[8][24] = {"Хелпер","Модератор","Ст.Модератор","Администратор","Ст.Администратор","Зам.Гл.Администратора","Гл.Администратор","Руководитель"};

        new string[144];

format(string, sizeof(string), "Вы авторизовались как %s", Admin_Names[pInfo[playerid][pAdmin]-1]);

  SendClientMessage(playerid, COLOR_ORANGE, string);

  if(pInfo[playerid][pAdmin] < ADM_FOUNDER)

{

    new country[64], city[64];

GetIPCountry(pInfo[playerid][pLastIP], country, sizeof(country));

GetIPCity(pInfo[playerid][pLastIP], city, sizeof(city));

    if(!pInfo[playerid][pCheckCode]) format(string, sizeof(string), "[A] %s %s[%i] авторизовал%s без граф.ключа [iP:%s (%s %s)]", Admin_Names[pInfo[playerid][pAdmin]-1], GetName(playerid), playerid, (pInfo[playerid][pSex]==1)?("ся"):("ась"), pInfo[playerid][pIP], country, city);

    else format(string, sizeof(string), "[A] %s %s[%i] авторизовал%s [iP:%s (%s %s)]", Admin_Names[pInfo[playerid][pAdmin]-1], GetName(playerid), playerid, (pInfo[playerid][pSex]==1)?("ся"):("ась"), pInfo[playerid][pIP], country, city);

SendAdminMessage(0xFFCC00FF, string);

}

  mysql_query_string[0] = EOS;

format(mysql_query_string, 128, "UPDATE "T_ADMIN" SET last_connect = CURDATE() WHERE name = '%s' LIMIT 1", GetName(playerid));

mysql_tquery(dbHandle, mysql_query_string, "", "");

}

 

#endif

 

return 1;

}
Изменено пользователем v-gondurov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Shadows

Возможно, Вы выдаёте себе права администратора только в игре, но не записываете это в базу данных о админах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
v-gondurov

@16Shadows,я админку через базу выдаю 


проблема решена

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.