mysql_real_escape_string
#1

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

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

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

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

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

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

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`;
и да ты просто испортишь запрос в итоге вернёт пустой запрос.
Reply
#8

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`;
и да ты просто испортишь запрос в итоге вернёт пустой запрос.
Вы попугайчик?
Reply
#9

понял в чем дело.
я использовал так(пример):
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); 
Reply
#10

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


Forum Jump:


Users browsing this thread: 3 Guest(s)