PDA

Просмотр полной версии : [Вопрос] mysql_real_escape_string



Nurick
17.07.2016, 17:58
Здравствуйте!
Делал подтверждения пароля и столкнулся с маленькой проблемой.


SetPVarString( playerid, "player_password", inputtext ); // Сохраняю строку в переменную игрока
return ShowPlayerDialog( playerid, 2, DIALOG_STYLE_INPUT, !"Заголовок", !"Текст", !"Кнопка 1", !"Кнопка 2" );


new confirm_password[129]; // 129 - Хэш паролей
GetPVarString( playerid, "player_password", confirm_password, sizeof( confirm_password) ); // Получаю сохраненную переменную
DeletePVar( playerid, "player_password" ); // Удаляю данную переменную
if( !response ) // Если нажимает кнопку 2 отсоединяю от сервера (ESC)
{
SendClientMessage( playerid, 0xFF0000AA, !"Текст" );
Kick( playerid );
}
if( !strcmp( inputtext, confirm_password, false ) && strlen( inputtext ) ) // Сравниваю введенные 2 строки и получаю длину введённых строк
{
mysql_real_escape_string( text, escape ); // Тут же не могу разобраться см. ниже
ShowPlayerDialog( playerid, 3, DIALOG_STYLE_MSGBOX, !"Заголовок", !"Текст", !"Кнопка 1", !"Кнопка 2" ); // Если строки совпали то вывожу им этот диалог
}
else // Если строки же не совпали то отсоединяю от сервера
{
SendClientMessage( playerid, 0xFF0000AA, !"Текст" );
Kick( playerid );
}


mysql_real_escape_string - Используйте эту функцию, чтобы защитить строку, так что его безопасным для запросов MySQL, это действительно полезно для исходных данных, как имена и пароли.

http://s018.radikal.ru/i513/1607/50/a68fa3dc19bb.png
Подключение к базе данных требуется перед использованием этой функции.

Ну если я делаю подключение к базе данных то выводит ошибку:

error 035: argument type mismatch (argument 1)


mysql_real_escape_string( MySQL, inputtext, Player[playerid][Password] );

Если же делать без запроса то всё компилируется без ошибочно

De_Lay
17.07.2016, 18:06
mysql_real_escape_string(inputtext, Player[playerid][Password], MySQL );
Переменная для проверки подключения ставится в конце!!!

(const source[], destination[], connectionHandle)