SA-MP Forums Archive
Проблема с регистрацией MySQL - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Проблема с регистрацией MySQL (/showthread.php?tid=520875)



Проблема с регистрацией MySQL - Dreamerzzz - 20.06.2014

Здравствуйте, у меня возникло 2-ве проблемы с регистрацией и авторизацией в системе БД mySQL. Прошу помощи!)

1) - При регистрации на сервере в базу не записывается Никнейм персонажа

Код:
   if(dialogid == DIALOG_REGISTER) //Регистрация
   {
	if(response)
	{
     if(strlen(inputtext) == 0)
     {
     ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "{ffd800}Регистрация", "{ffffff}Введите пароль", "Далее", "");
     }
     else
     {
     new query[255], temp[100];
     new PlayerName[MAX_PLAYER_NAME];
     mysql_real_escape_string (inputtext, temp);
     format ( query, sizeof query, "INSERT INTO `users` (`login`, `password` ) VALUES ( '%s', '%s')", PlayerName[playerid], temp);
     mysql_function_query ( dbHandle, query, false, "", "" ) ;
     ShowPlayerDialog(playerid, DIALOG_LOGIN,DIALOG_STYLE_INPUT, "{ffd800}Авторизация", "введите пароль", "Далее", "");
    }
    }
    else{}
   }
2) - Авторизация, находит аккаунт, но если вводить пароль, верный, система его отвергает

Код:
   if(dialogid == DIALOG_LOGIN) //Авторизация
   {
    if(response)
	{
    if(strlen(inputtext) == 0)
    {
    ShowPlayerDialog(playerid, DIALOG_LOGIN,DIALOG_STYLE_INPUT, "{ffd800}Авторизация", "{ffffff}Окошко пустое, введите пароль", "Далее", "");
    }
    else
    {
    new query[255], temp[128];
    new PlayerName[MAX_PLAYER_NAME];
    format(query, sizeof query, "SELECT * FROM `users` WHERE `login` = '%s' AND `password` = '%s' LIMIT 1",
PlayerName[playerid], temp) ;
    mysql_real_escape_string(inputtext, temp);
    mysql_function_query(dbHandle, query, true, "PlayerLogin", "i", playerid);
    }
    }
    else{}
   }
Код:
forward PlayerLogin (playerid);
public PlayerLogin (playerid)
{
    new rows, fields, temp[255];
    cache_get_data(rows,fields);
    if(rows)
    {
     ShowPlayerDialog(playerid, DIALOG_TEAM, DIALOG_STYLE_LIST, "{ffd800}Выбор команды", "Синие\nКрасные", "Далее", "");
    }
    else
    {
     SendClientMessage(playerid, 0xff9900AA, "Неверный пароль");
     ShowPlayerDialog(playerid, DIALOG_LOGIN,DIALOG_STYLE_INPUT, "{ffd800}Авторизация", "Введите пароль", "Далее", "");
    }
    return 1;
}



Re: Проблема с регистрацией MySQL - Jebster - 20.06.2014

Это либо мой код, либо ты кодишь как я(даже название переменных).

new PlayerName[MAX_PLAYER_NAME]; - ты создаёшь, но никнейм-то пустой(GetPlayerName), в этом вся проблема.


Re: Проблема с регистрацией MySQL - Dreamerzzz - 20.06.2014

Quote:
Originally Posted by Jebster
Посмотреть сообщение
Это либо мой код, либо ты кодишь как я(даже название переменных).
Ахаха, это из какого-то шаблона, может он был и твой, я прост в mySQL не рублю нихрена, вот изучаю шаблоны


Re: Проблема с регистрацией MySQL - Dreamerzzz - 20.06.2014

Quote:
Originally Posted by Jebster
Посмотреть сообщение
new PlayerName[MAX_PLAYER_NAME]; - ты создаёшь, но никнейм-то пустой(GetPlayerName), в этом вся проблема.
Извиняюсь, конечно, я прописал через GetPlayerName(...); Никакого рез-та, только хуже стало, теперь он даже аккаунт не распознает.


Re: Проблема с регистрацией MySQL - White_116 - 21.06.2014

Удали везде new PlayerName[MAX_PLAYER_NAME];
К глобальным переменным new PlayerName[MAX_PLAYERS][MAX_PLAYER_NAME];
Далее делаем следующие.
Quote:

public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, PlayerName[playerid], MAX_PLAYER_NAME);
//Ваш код
return 1;
}




Re: Проблема с регистрацией MySQL - k3dr - 21.06.2014

PHP код:
new query[255], temp[128];
    new 
PlayerName[MAX_PLAYER_NAME];
    
format(querysizeof query"SELECT * FROM `users` WHERE `login` = '%s' AND `password` = '%s' LIMIT 1",
PlayerName[playerid], temp) ; 
>>

PHP код:
new query[128];
    
format(querysizeof query"SELECT * FROM `users` WHERE `login` = '%s' AND `password` = '%s' LIMIT 1",
PlayerName[playerid], inputtext) ; 



Re: Проблема с регистрацией MySQL - Dreamerzzz - 21.06.2014

Эм...все перепробовал, никакого результата, менял Temp на inputtext, менял переменные, все бестолку...Аккаунт распознается, но не принимает пароль из БД + не записывается имя при регистрации(распознает аккаунт, если в базу никнейм самому вписать)


Re: Проблема с регистрацией MySQL - k3dr - 21.06.2014

ТЫ ЗАСОВЫВАЕШЬ В ЗАПРОС ПУСТУЮ ПЕРЕМЕННУЮ, ЧТО ТЫ ОЖИДАЕШЬ ТОГДА ?

PHP код:
new PlayerName[MAX_PLAYER_NAME];