SA-MP Forums Archive
mysql_real_escape_string - 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_real_escape_string (/showthread.php?tid=457843)



mysql_real_escape_string - CamperGTA - 13.08.2013

Подскажите, для чего нужно использовать mysql_real_escape_string в самп, что будет если его не использовать?


Re: mysql_real_escape_string - stabker - 13.08.2013

Защита от SQL инъекции. Используется для фильтрации строк, вводимых пользователем.


Re: mysql_real_escape_string - -Stranger- - 13.08.2013

Вот есть у Вас запрос такой:
PHP код:
SELECT FROM `userinfoWHERE `password`='%s' 
А я зайду и в замен пароля передам так:
PHP код:
qqq';DROP TABLE `userinfo`; 
Думаю понятно...


Re: mysql_real_escape_string - NameNone - 13.08.2013

Quote:
Originally Posted by CamperGTA
Посмотреть сообщение
что будет если его не использовать?
SQL инъекции


Re: mysql_real_escape_string - Stepashka - 14.08.2013

Quote:
Originally Posted by -Stranger-
Посмотреть сообщение
Вот есть у Вас запрос такой:
PHP код:
SELECT FROM `userinfoWHERE `password`='%s' 
А я зайду и в замен пароля передам так:
PHP код:
qqq';DROP TABLE `userinfo`; 
Думаю понятно...
и ничего не будет.


Re: mysql_real_escape_string - CamperGTA - 14.08.2013

Возникла одна проблема, понаставил эту функцию везде(диалоги)и функция возвращает пустую строку.
пример:
PHP код:
new str[8],dest[8];
format(str,sizeof(str),"wae12sd");
mysql_real_escape_string(strdestcH);
printf("%s"dest); //возвращает пустую строку 



Re: mysql_real_escape_string - James_Braga - 14.08.2013

Quote:
Originally Posted by -Stranger-
Посмотреть сообщение
Вот есть у Вас запрос такой:
PHP код:
SELECT FROM `userinfoWHERE `password`='%s' 
А я зайду и в замен пароля передам так:
PHP код:
qqq';DROP TABLE `userinfo`; 
Думаю понятно...
это будет выглядеть как
PHP код:
SELECT FROM `userinfoWHERE `password`='qqq';DROP TABLE `userinfo`;
и да ты просто испортишь запрос в итоге вернёт пустой запрос.


Re: mysql_real_escape_string - Stepashka - 14.08.2013

Quote:
Originally Posted by CamperGTA
Посмотреть сообщение
Возникла одна проблема, понаставил эту функцию везде(диалоги)и функция возвращает пустую строку.
пример:
PHP код:
new str[8],dest[8];
format(str,sizeof(str),"wae12sd");
mysql_real_escape_string(strdestcH);
printf("%s"dest); //возвращает пустую строку 
её надо использовать вместо format.
Quote:
Originally Posted by James_Braga
Посмотреть сообщение
это будет выглядеть как
PHP код:
SELECT FROM `userinfoWHERE `password`='qqq';DROP TABLE `userinfo`;
и да ты просто испортишь запрос в итоге вернёт пустой запрос.
Вы попугайчик?


Re: mysql_real_escape_string - CamperGTA - 14.08.2013

понял в чем дело.
я использовал так(пример):
PHP код:
enum pInfo
{
    
text[64];
};
new 
PlayerInfo[MAX_PLAYERS][pInfo];
//----------------------------------
mysql_real_escape_string(inputtextPlayerInfo[playerid][text]); 
и исправил проблему, указав макс. длину строки:
PHP код:
mysql_real_escape_string(inputtextPlayerInfo[playerid][text], cH64); 



Re: mysql_real_escape_string - stabker - 14.08.2013

pawn Код:
enum pInfo
{
    text[64];
};
new PlayerInfo[MAX_PLAYERS][pInfo];
//----------------------------------
mysql_real_escape_string(inputtext, PlayerInfo[playerid][text]);
Это явно не решение