• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Падение сервера при регистрации

Mike_Evan$

Умник
Логи:

PHP:
[11:31:00] sultanlife вызвал dialog 1, listitem -1, inputtext - Тёмный
[11:31:02] sultanlife вызвал dialog 1, listitem -1, inputtext - Другое
[11:31:02]
[MySQL Error]
ID соединения: 1
ID ошибки: 1064
Ошибка: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2.72.221.42', '1', '0', '-1', 'No Referal', 'No Mail Adress', '99999999', '0', '' at line 1
Коллбэк: OnPlayerRegisterMysql
Запрос: INSERT INTO `accounts` (`NickName`,`Password`,`Hash`,`RegIP`,`Level`,`Sex`,`Race`,`Referal`,`Mail`,`Money`,`Bank`,`HouseKey`,`BankPass`,`SkillLevel`,`VirMoney`,`Merrit`,`datareg`) VALUE ('sultanlife', '8517ABF03DE76403CD33BDB9E52446D7FA47245EF8BDD64E6BC0060F4CE1A703','V}9Hxl`\q\', '2.72.221.42', '1', '0', '-1', 'No Referal', 'No Mail Adress', '99999999', '0', '-1', '0', '1', 150000, 'None', '2021-10-4')

[11:31:02] [debug] Server crashed while executing arizona.amx
[11:31:02] [debug] AMX backtrace:
[11:31:02] [debug] #0 native printf () in samp03svr
[11:31:02] [debug] #1 006fc954 in public OnQueryError (errorid=1064, error[]=@0204ca0c "You have an error in your SQL syntax; check the manual that corresponds to your ...", callback[]=@0204c9b4 "OnPlayerRegisterMysql", query[]=@0204c358 "INSERT INTO `accounts` (`NickName`,`Password`,`Hash`,`RegIP`,`Level`,`Sex`,`Race...", connectionHandle=1) at C:\Users\ORTON\Desktop\ARIZONA\gamemodes\SEDONA\arizona.pwn:59541
Catch server shutdown. Restarting ... 3, 2, 1,
Падет из-за соли: V}9Hxl`\q\ из-за символа в конце \

Сам код регистрации:
Код:
stock OnPlayerRegister(playerid, const password[])
{
    new y, m, d;
    static passwd[100], date[12];
    passwd[0] = EOS, date[0] = EOS, str_1[0] = EOS, str_2[0] = EOS;
    getdate(y,m,d);
    f(date, sizeof(date), "%d-%d-%d", y, m, d);
    mysql_escape_string(password, passwd);
    
    new pSalt[11],temp_salt[1],found=0;
    for(new i; i < 10; i++)
    {
        temp_salt[0] = random(79) + 47;
        if(i == 9)
        {
            if(strfind(temp_salt[0],"\\",true))
            {
                found = 1;
                do
                {
                    temp_salt[0] = random(79) + 47;
                    if(!strfind(temp_salt[0],"\\",true)) found = 0;
                }
                while found == 1;
            }
        }
        pSalt[i] = temp_salt[0];
    }
    pSalt[10] = 0;
    new newpassword[255];
    SHA256_PassHash(passwd, pSalt, newpassword, 65);
    strcat(str_1,"INSERT INTO `accounts` ");
    strcat(str_1,"(`NickName`,`Password`,`Hash`,`RegIP`,`Level`,`Sex`,`Race`,`Referal`,`Mail`,`Money`,`Bank`,`HouseKey`,`BankPass`,`SkillLevel`,`VirMoney`,`Merrit`,`datareg`)");
    strcat(str_1," VALUE ");
    f(str_2, 500, "('%s', '%s','%s', '%s', '"BONUS_LEVEL"', '%i', '%i', '%s', 'No Mail Adress', '"BONUS_MONEY"', '0', '-1', '0', '1', "BONUS_DONATE", 'None', '%s')",
    PN(playerid), newpassword,pSalt, PlayerIP(playerid), RegSex[playerid], RegRace[playerid], RegReferal[playerid], date);
    strcat(str_1, str_2);
    return mysql_tquery(mysql, str_1, "OnPlayerRegisterMysql", "d", playerid);

}
 
Сверху Снизу