%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 i = strlen(inputtext); i != 0; --i)
switch(inputtext[i])
{
case '%':return Kick(playerid);
}
Re: %s В DIALOG_STYLE_INPUT -
Stepashka - 29.06.2014
Quote:
Originally Posted by Aizov
PHP Code:
for(new i = strlen(inputtext); i != 0; --i)
switch(inputtext[i])
{
case '%':return Kick(playerid);
}
|
Прочтите книги про "экранирование данных". И ни когда не работайте с сфере где нужно обрабатывать пользовательские данные. С вашим подходом пользователя за опечатку в тюрьму отправят!
Re: %s В DIALOG_STYLE_INPUT -
0x002 - 29.06.2014
Quote:
Originally Posted by Aizov
PHP Code:
for(new i = strlen(inputtext); i != 0; --i)
switch(inputtext[i])
{
case '%':return Kick(playerid);
}
|
Мне кажется, или логичней было бы после % добавить еще "s"?
Re: %s В DIALOG_STYLE_INPUT -
Stepashka - 29.06.2014
Quote:
Originally Posted by 0x002
Мне кажется, или логичней было бы после % добавить еще "s"? 
|
вам кажется.
Re: %s В DIALOG_STYLE_INPUT -
0x002 - 29.06.2014
Quote:
Originally Posted by Stepashka
вам кажется.
|
Тоесть вы считаете нецелесообразным использовать код, который выложил товарищ выше?
Re: %s В DIALOG_STYLE_INPUT -
SHOROOP - 29.06.2014
Quote:
Originally Posted by 0x002
Тоесть вы считаете нецелесообразным использовать код, который выложил товарищ выше?
|
Да. Во-первых, есть не только определение строки через %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
Пофиксили же это уже давно, не? Она автоматически заменяется сама. В чате, по крайней мере, точно.
|
В чате давно, в диалогах нет
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
Если не понял суть самого первого ответа, то вот
PHP Code:
strreplace(inputtext, '%', '#');
|
Это же не стандартная ?
Как вариант.
PHP Code:
if(strfind(inputtext,"%") != -1)
Re: %s В DIALOG_STYLE_INPUT -
Randall - 30.06.2014
Quote:
Originally Posted by k3dr
Это же не стандартная ?
Как вариант.
PHP Code:
if(strfind(inputtext,"%") != -1)
|
Да, точно..
Но твоим способом ему придется вставлять в каждый вызываемый диалог
Проще добавить сток, а тот вариант, что я кинул выше, поставить в начало каллбека
PHP Code:
stock strreplace(string[], find, replace)
{
for(new i=0; string[i]; i++)
{
if(string[i] == find)
{
string[i] = replace;
}
}
}
Re: %s В DIALOG_STYLE_INPUT -
k3dr - 30.06.2014
Quote:
Originally Posted by Randall
Да, точно..
Но твоим способом ему придется вставлять в каждый вызываемый диалог
Проще добавить сток, а тот вариант, что я кинул выше, поставить в начало каллбека
PHP Code:
stock strreplace(string[], find, replace)
{
for(new i=0; string[i]; i++)
{
if(string[i] == find)
{
string[i] = replace;
}
}
}
|
Хороший вариант, а мой же, можно в начале паблика, не обязательно в каждый диалог.
Re: %s В DIALOG_STYLE_INPUT -
SHOROOP - 30.06.2014
Quote:
Originally Posted by Randall
Да, точно..
Но твоим способом ему придется вставлять в каждый вызываемый диалог
Проще добавить сток, а тот вариант, что я кинул выше, поставить в начало каллбека
PHP Code:
stock strreplace(string[], find, replace)
{
for(new i=0; string[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
учимся юзать поиск