SA-MP Forums Archive
%s В DIALOG_STYLE_INPUT - 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: %s В DIALOG_STYLE_INPUT (/showthread.php?tid=522838)



%s В DIALOG_STYLE_INPUT - 0x002 - 29.06.2014

Ребята, искал, может что кто подскажет? Как можно защитить себя от крэша сервера?


Re: %s В DIALOG_STYLE_INPUT - k3dr - 29.06.2014

Поиск символа в inputtext
Если найден заменить на #
PROFIT


Re: %s В DIALOG_STYLE_INPUT - Aizov - 29.06.2014

PHP Code:
for(new strlen(inputtext); != 0; --i)
    switch(
inputtext[i])
    {
        case 
'%':return Kick(playerid);
    } 



Re: %s В DIALOG_STYLE_INPUT - Stepashka - 29.06.2014

Quote:
Originally Posted by Aizov
View Post
PHP Code:
for(new strlen(inputtext); != 0; --i)
    switch(
inputtext[i])
    {
        case 
'%':return Kick(playerid);
    } 
Прочтите книги про "экранирование данных". И ни когда не работайте с сфере где нужно обрабатывать пользовательские данные. С вашим подходом пользователя за опечатку в тюрьму отправят!


Re: %s В DIALOG_STYLE_INPUT - 0x002 - 29.06.2014

Quote:
Originally Posted by Aizov
View Post
PHP Code:
for(new strlen(inputtext); != 0; --i)
    switch(
inputtext[i])
    {
        case 
'%':return Kick(playerid);
    } 
Мне кажется, или логичней было бы после % добавить еще "s"?


Re: %s В DIALOG_STYLE_INPUT - Stepashka - 29.06.2014

Quote:
Originally Posted by 0x002
View Post
Мне кажется, или логичней было бы после % добавить еще "s"?
вам кажется.


Re: %s В DIALOG_STYLE_INPUT - 0x002 - 29.06.2014

Quote:
Originally Posted by Stepashka
View Post
вам кажется.
Тоесть вы считаете нецелесообразным использовать код, который выложил товарищ выше?


Re: %s В DIALOG_STYLE_INPUT - SHOROOP - 29.06.2014

Quote:
Originally Posted by 0x002
View Post
Тоесть вы считаете нецелесообразным использовать код, который выложил товарищ выше?
Да. Во-первых, есть не только определение строки через %s, но и другие - интовых чисел через %i и %d, дробных через %f, etc.
А во-вторых, проверка на следующий после % символ в рамках указанного кода вообще смысла не несёт.


Re: %s В DIALOG_STYLE_INPUT - DrumYum - 30.06.2014

Пофиксили же это уже давно, не? Она автоматически заменяется сама. В чате, по крайней мере, точно.


Re: %s В DIALOG_STYLE_INPUT - k3dr - 30.06.2014

Quote:
Originally Posted by DrumYum
View Post
Пофиксили же это уже давно, не? Она автоматически заменяется сама. В чате, по крайней мере, точно.
В чате давно, в диалогах нет


Re: %s В DIALOG_STYLE_INPUT - Randall - 30.06.2014

Если не понял суть самого первого ответа, то вот

PHP Code:
strreplace(inputtext'%''#'); 



Re: %s В DIALOG_STYLE_INPUT - k3dr - 30.06.2014

Quote:
Originally Posted by Randall
View Post
Если не понял суть самого первого ответа, то вот
PHP Code:
strreplace(inputtext'%''#'); 
Это же не стандартная ?


Как вариант.
PHP Code:
if(strfind(inputtext,"%") != -1



Re: %s В DIALOG_STYLE_INPUT - Randall - 30.06.2014

Quote:
Originally Posted by k3dr
View Post
Это же не стандартная ?


Как вариант.
PHP Code:
if(strfind(inputtext,"%") != -1
Да, точно..

Но твоим способом ему придется вставлять в каждый вызываемый диалог

Проще добавить сток, а тот вариант, что я кинул выше, поставить в начало каллбека

PHP Code:
stock strreplace(string[], findreplace)
{
    for(new 
i=0string[i]; i++)
    {
        if(
string[i] == find)
        {
            
string[i] = replace;
        }
    }




Re: %s В DIALOG_STYLE_INPUT - k3dr - 30.06.2014

Quote:
Originally Posted by Randall
View Post
Да, точно..

Но твоим способом ему придется вставлять в каждый вызываемый диалог

Проще добавить сток, а тот вариант, что я кинул выше, поставить в начало каллбека

PHP Code:
stock strreplace(string[], findreplace)
{
    for(new 
i=0string[i]; i++)
    {
        if(
string[i] == find)
        {
            
string[i] = replace;
        }
    }

Хороший вариант, а мой же, можно в начале паблика, не обязательно в каждый диалог.


Re: %s В DIALOG_STYLE_INPUT - SHOROOP - 30.06.2014

Quote:
Originally Posted by Randall
View Post
Да, точно..

Но твоим способом ему придется вставлять в каждый вызываемый диалог

Проще добавить сток, а тот вариант, что я кинул выше, поставить в начало каллбека

PHP Code:
stock strreplace(string[], findreplace)
{
    for(new 
i=0string[i]; i++)
    {
        if(
string[i] == find)
        {
            
string[i] = replace;
        }
    }

С чего это в каждый, если также в начало коллбэка тот код пихнуть можно без проблем? Если диалоговое окно не имеет поля для ввода, длина inputtext будет равна нулю и strfind спокойно вернет -1. Если я правильно задумку с strfind понял.


Re: %s В DIALOG_STYLE_INPUT - OKStyle - 01.07.2014

inputtext при MSGBOX не проверяли, но при LIST содержит то, что в listitem.


Re: %s В DIALOG_STYLE_INPUT - DartfoL - 01.07.2014

http://forum.sa-mp.com/showpost.php?...09&postcount=9
учимся юзать поиск