mysql, EscapeString, ошибка
#1

Наше баг...
PHP код:
[00:40:18CMySQLHandler::EscapeString(6666|6666|6666|); - Escaped 15 characters to 6666|6666|6666|.
[
00:40:18] >> mysql_queryConnection handle
К сожалению не одна из тем не решает вопрос, посоветуйте что-нибудь...
Reply
#2

А в чем баг то?
Reply
#3

Ну в том что они получают админку через mysql.... Это управляющие символы...
Reply
#4

Quote:
Originally Posted by pozitiv4eg
Посмотреть сообщение
Ну в том что они получают админку через mysql.... Это управляющие символы...
Кто они? Управляющие символы чего? Админку чего получают?
Опиши проблему более подробно и развернуто!
Reply
#5

Вообщем, при смене пароля отправляется UPDATE запрос. Они же в диалог смены пароля кидают, что то типо... 666|666|666|перезаходят, вуаля админка 666 уровня, конечно можно отслеживать strfind, но слишком много у меня подобных диалогов, да диалоги есть в которых символ | нужен.
Reply
#6

Я не очень знаком со строковыми функциями в павн, но как вариант попробуй это, или же более знающие пусть поправят:
PHP код:
stock upd_MysqlRealEscapeString source[], dest[] ) {
    new 
len strlen source ) ;
    for ( new 
i!= leni++ ) {
        if ( !
strcmp source ] , "|"true) ) source ] = "I"// заменяем на i заглавную, или можно просто вырезать.
    
}
    
MysqlRealEscapeString sourcedest ) ;
    return 
1;
}
#define MysqlRealEscapeString upd_MysqlRealEscapeString 
Можно еще так, но это рекурсия:
PHP код:
stock DelCharInString ( &string[], char[] ) {
    
    new 
find strfind stringchartrue ) ;
    
    if ( 
find != -) {
        
        
strdel stringfindfind ) ;
        
DelCharInString stringchar ) ;
        return 
1;
    }
    
    return 
1;

Reply
#7

Код где формируется запрос в студию.
Reply
#8

Вот оно...
pawn Код:
case D_REGISTER:
        {
            for(new i = strlen(inputtext); i != 0; --i)
            switch(inputtext[i])
            {
            case 'À'..'ß', 'à'..'ÿ', ' ':
                return SendClientMessage(playerid,COLOR_WHITE,"Ïðè ââîäå ïàðîëÿ èñïîëüçóéòå òîëüêî àíãëèéñêèå áóêâû"), GKick(playerid);
            }
            if(response)
            {
                new password[50];
                mysql_real_escape_string(inputtext,password);
                if(!strlen(password) || strlen(password) < 3 || strlen(password) > 16 || IsTextRussian(password))
                {
                    format(string, 300, "{ffffff}Äîáðî ïîæàëîâàòü íà {1E90FF}"Namemode"\n{ffffff}Ýòîò àêêàóíò íå çàðåãèñòðèðîâàí.\n\nËîãèí: {1E90FF}%s\n{ffffff}Ââåäèòå ïàðîëü è íàæìèòå \"Äàëåå\".\n\nÏðèìå÷àíèÿ:\n- Ïàðîëü ÷óâñòâèòåëåí ê ðåãèñòðó.\n- Äëèíà ïàðîëÿ îò 4 äî 16 ñèìâîëîâ.\n-  ïàðîëå ìîæíî èñïîëüçîâàòü ëàòèíñêèå ñèìâîëû.",PlayerInfo[playerid][pSendername]);
                    ShowPlayerDialog(playerid, D_REGISTER, DIALOG_STYLE_INPUT, "{1E90FF}Ðåãèñòðàöèÿ", string, "Äàëåå","Îòìåíà");
                }
                else
                {
                    strmid(PlayerInfo[playerid][pPassword], password, 0, strlen(password), 32);
                    for(new i = 0; i != 10; ++i) SendClientMessage(playerid, COLOR_BLUE, " ");
                    SFCM(playerid, COLOR_BLUE, "Âàø ïàðîëü îò àêêàóíòà: '%s', çàïîìíèòå åãî, è íèêîìó íå ãîâîðèòå!", password);
                    SendClientMessage(playerid, COLOR_BLUE, "Çàïîìíèòå, àäìèíèñòðàöèÿ ñåðâåðà íèêîãäà íå ñïðîñèò âàø ïàðîëü");
                    SetPlayerPos(playerid,-2909.7222, 1447.8951, 67.0304);
                    SetPlayerCameraPos(playerid,-2909.0803, 1448.6609, 67.2555);
                    SetPlayerCameraLookAt(playerid,-2909.0803, 1448.6609, 67.2555);
                    SendClientMessage(playerid, COLOR_BLUE, "Ïîæàëóéñòà, ââåäèòå àäðåñ âàøåé ýëåêòðîííîé ïî÷òû");
                    ShowPlayerDialog(playerid, D_JOB+30, 1, "{1E90FF}Ýëåêòðîííàÿ ïî÷òà","{ffffff}Óâàæàåìûé èãðîê! Ïîæàëóéñòà ââåäèòå ñâîé Email àäðåñ\nÝòî ïîìîæåò âàì âîññòàíîâèòü äîñòóï ê ñâîåìó àêêàóíòó â ñëó÷àå åãî óòåðè!\nÅñëè âû íå õîòèòå óêàçûâàòü ñâîé Email òî îñòàâüòå ïîëå ïóñòûì!", "Äàëåå","");
                }
            }
            else { SendClientMessage(playerid, COLOR_LIGHTRED, ""PlayerNeedToLoggedForToPlay""); GKick(playerid); }
        }
Reply
#9

Ту часть где идет обработка данных.
Reply
#10

Quote:
Originally Posted by pozitiv4eg
Посмотреть сообщение
Ну в том что они получают админку через mysql.... Это управляющие символы...
выбросите sscanf и не используйте его, не будет никаких проблем с мускулом
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)