ОсновноеRadiotalkПользовательское
MPCHAT - CMS хостинг чатов для профессионалов
90   •   Посмотреть все темы

Запрет использования команды перенаправления.

 

297
Александр @SmoL
Есть некая функция пере направления пользователя в другую комнату
a1='/killvb';
if(text.substring(0,a1.length)==a1) {
symbol=symbols[7]
if(tonick==parent.mynick &&parent.mystatus!='1'&&parent.mystatus!='16'){window.setTimeout('setmyroom(1)',3000);}
text=text.replace(a1, "");
text=text.replace(tonick, "");
text=text.replace(":", "");
wr(set_time+set_nick+"<b>"+tonick+"</b> переправлен в комнату для разборок! <font size=2 color="+color+">"+text+"</font>");
return 1;
}
if (text.substring(0,8)=="/komanda") return 1;

Образовалась очень не приятная проблема что при вскрытии исходного кода фрейма, видно команду, и тот кто понимает может запросто воспользоваться ею.
Вопрос, как можно запретить использовать ее, тем кому не нужно?
Делал разными методами и в итоге не получалось.

Отредактировано SmoL - 01.11.2010
1241
VL@DLEN @VLaDLEN
1) Так ты сам нам скинул исходный код)
2) Можно закинуть код в файл .js и указать путь к нему, сразу в глаза кидаться не будет) но если поискать, то и это смогут найти

4875
ValdeZ @ValdeZ
Обфускатором воспользоваться.
Если проблема в том, что надо спрятать код.

Отредактировано ValdeZ - 01.11.2010
1390
Ванья @ВанькаRU
**********

может поможет ?

7094
Dim @Render
SmoL, как ею (командой) могут воспользоваться? Условие для статусов не работает чтоли?
Может не правильно прописано &&parent.mystatus!='1'&&parent.mystatus!='16' ?
Если условие для определённых статусов, то и команду использовать могут те у кого эти статусы, или тебе именно сам код нужно закодировать?

297
Александр @SmoL
Render, да вот и я не знаю, тот скрипт само собой в скриптах, а видят его по
document.write("<option value='/killvb '>В беспредел");

Как же закодировать то в самых скриптах? Не получится.
Условие прописано, но стоит вписать в поле ввода текста /killvb ник пользователя и нажать ентер, и оно срабатывает.

1241
VL@DLEN @VLaDLEN
Попробуй поставить так:

document.write("<option value='/killvb '>В беспредел");

Отредактировано VLaDLEN - 02.11.2010
7094
Dim @Render
Получилось только такое. Условие для прописанных ников, те кто прописан в настройках, могут перенаправлять в комнату беспредел.
По статусам так и не вышло ничего, только если ridz поможет в реализации такого условия)

/* [НАСТРОЙКИ] */
/* Ники перенаправляющих в комнаты чата */
var bes = new Array();
bes['SmoL']=1;


/* [Функция - вывода сообщений и команд] */
if(text.substr(0,4)=="/bes" && bes[nick])
{if(loaded==1 && mynick==tonick) window.setTimeout('setmyroom(1)',2000); text="перенаправил(а) в комнату беспредел "+tonick;}

Нижний фрейм
document.write("<option value='/bes '>В беспредел");

18
OoPS @OoPS
Render пишет:

/* [Функция - вывода сообщений и команд] */
if(text.substr(0,4)=="/bes" && bes[nick])
{if(loaded==1 && mynick==tonick) window.setTimeout('setmyroom(1)',2000); text="перенаправил(а) в комнату беспредел "+tonick;}

Как сделать такое условие для обычных спец.сообщений?
Пример:
Показать текст

23
Azat_Serov @Azat_Serov
OoPS, анологично

/* [НАСТРОЙКИ] */
/* Ники, которым доступна команда */
var komanda = new Array();
komanda['OoPS']=1;


/* [Функция - вывода сообщений и команд] */
a1='/komanda ';
if (text.substring(0,a1.length)==a1 && komanda[nick]) {
text=text.substr(a1.length,text.length-a1.length);
text=text.substr(tonick.length+2,text.length-tonick.length-2);
wr(" Мой текст ");
return 1;
}

Нижний фрейм
document.write("<option value='/komanda '>komanda");


По статусам осуществить тоже несложно, но я не нашёл такую переменную как статус пишущего, stat[set_nick] и прочие не подходят

7094
Dim @Render
Azat_Serov, по статусу можно но только по одному скорее всего. Тут получается такой момент, если прописать для нескольких статусов условиями && st==1 && st==2 то будет возникать глюк, получается у ника доожно быть сразу все эти статусы, хотя может я путаю условия js с php...)

1390
Ванья @ВанькаRU
Render пишет:

Azat_Serov, по статусу можно но только по одному скорее всего. Тут получается такой момент, если прописать для нескольких статусов условиями && st==1 && st==2 то будет возникать глюк, получается у ника доожно быть сразу все эти статусы, хотя может я путаю условия js с php...)

st==1 || st==2 - а так разве не работает ?

4619
Web3r @Web3r
adidas пишет:

у меня вопрос не потеме,скажите где подтверждать регистрацию пользователей?????
не могу понять

Админка / Пользователи / Статусы

23
Azat_Serov @Azat_Serov
Render, Тогда вот так st==1 || st==2
НО: ты попробуй проверить его на практике. st==1 будет относиться не к автору сообщения, а к тому кто его прочитал. Таким образом всё будет с точностью до наоборот, т.е. переместить в другую комнату сможет не только админ, а наоборот переместить можно будет только админа, так как только у него выполняется условие st==1, и только над ним будет осуществляться эта функция, другие же на неё реагировать совсем не будут, так как их статус не=1


7094
Dim @Render
А || и && разве не одно и то же? Вот заглянул бы в эту тему ridz, он бы сразу чётко сказал можно ли придумать что-то или вообще никак.
Пишем только... можно можно, попробуй, а тестить и покавырять всё это дело уже в чате никто не хочет...

458
ridz @ridz
1. статус человека пославшего сообщение можно определить только если этот человек ещё в чате!!!
2. перенаправление работает пока видно сообщение о перенаправлении в логе
код будет примерно так выглядеть
stat="";
for(var i=0;i<us.length;i++){if(us[i]!= null && us[i][0]==nick)stat=us[i][2];};
a1='/bes';
if(text.substr(0,4)=="/bes" && (stat==1||stat==2||stat==3)) {
if(tonick==parent.mynick){window.setTimeout('setmyroom(1)',3000);}
text=text.replace(a1, "");
text=text.replace(tonick, "");
text=text.replace(":", "");
wr(set_time+set_nick+" переправляет в беспредел пользователя: <b>"+tonick+"</b>! <font size=2 color="+color+">"+text+"</font>");
return 1;
}
if(text.substring(0,4)=="/bes") return 1;

никам со статусами 1 , 2, 3 будет разрешено перенаправлять

23
Azat_Serov @Azat_Serov
ridz, извини, в javascript`е разбираюсь слабо (выводы делал по аналогии с Паскалем)
Так для присвоения переменной (к примеру sm) значение статуса автора сообщения можно использовать это?
stat="";
for(var i=0;i<us.length;i++){if(us[i]!= null && us[i][0]==nick)stat=us[i][2];};
var sm=stat;

или можно сократить до какого-то вида вроде
stat=us[i][2];
var sm=stat;

или
var sm=us[i][2]
?
сократить код нельзя, возможен только 1 вариант но и он бессмысленный, зачем одну переменную переименовывать в другую?

Отредактировано Azat_Serov - 09.11.2010
23
motorstation @motorstation
народ, всем привет! у меня вопрос...

/* [НАСТРОЙКИ] */
/* Ники перенаправляющих в комнаты чата */
var bes = new Array();
bes['']=1;


/* [Функция - вывода сообщений и команд] */
if(text.substr(0,4)=="/bes" && bes[nick])
{if(loaded==1 && mynick==tonick) window.setTimeout('setmyroom(1)',2000); text="перенаправил(а) в комнату беспредел "+tonick;}

Нижний фрейм
document.write("<option value='/bes '>В беспредел");

я всё это прописал, но почему то не могу перекинуть в другую комнату, помогите плиз

6600
Александр @admiral
motorstation,
bes['свой ник']=1;
свой ник прописал?

23
motorstation @motorstation
да, я прописывал