define("NO_USERLOAD",1);
include("__dima.php");
if (!defined('DIMA')) exit("??");
include_once("__other.php");
checkref();
mainsecure();
if (isset($ni)) $ni=substr(trim(@strip_tags($ni)),0,100);
$uni=ue(@$ni);
$hni=html(@$ni);
$formpreg="/^[\x20-\xFF]*$/";
unset($info);
function stop($msg) {
global $form, $sessf, $nick;
include("z-web-part1.php");
echo "
Ошибка при заполнении формы:
$msg
";
echo "";
echo "Не нажимайте кнопку 'НАЗАД' (BACK) в вашем браузере, т.к. ".
"уже введенные поля погут быть потеряны (из формы).".
"
";
include("z-web-part2.php");
exit;
}
if (!isset($c)) $c="";
switch ($c) {
case "":
include("z-web-part1.php");
$xmain="";
if ($s[1])
$xmain.="
Присутствие в чате: активизирован - сейчас вы в чате с ником ".html($s['nick'])."";
else {
$xmain.="
Присутствие в чате: сейчас вы не в чате. ";
if ($s[2] && $s['authnick'])
$xmain.="".
"Немедленно войти в чат »";
}
$secure=&$GLOBALS['conf']['_secure']['rules'];
if ($secure[$s['se']]['httppass']) {
$xmain.="
Алгоритм защиты HTTP ключем: ";
if ($s['pr3cnt']<5) $xmain.="не работает";
else $xmain.="активен";
}
if ($s[2]) {
$xmain.="
Вы авторизованы под ником $s[authnick]: для входа в чат не обязательно вводить пароль";
if ($s[3])
$xmain.="
Вы являетесь администратором чата с уровенем доступа $s[3]
Вы не авторизированы";
$xlogout=antihack("logout");
$xlogin="";
if ($s[2]) {
$xauthnick=ue($s['authnick']);
$xlogin2=@strval(plugrun('login_links',0,__FILE__,__LINE__));
$xlogin=xparse(skn("login_main2.html"));
}
$xstat="";
if ($conf['statgo']) {
needstat();
$xcreate=date("d.m.Y H:i",@$cstat['create']);
$xcreate2=floor(doubleval(time()-$cstat['create'])/(24*60*60));
$xdate=date("d.m.Y H:i",@$cstat['peaktime']);
$xnum=@$cstat['peak'];
$xx1=intval(@$cstat['djoin'][$statd1]);
$xx2=intval(@$cstat['djoin'][$statd]);
$xx3=intval(@$cstat['dcnt'][$statd1]);
$xx4=intval(@$cstat['dcnt'][$statd]);
$xx5=statval(intval(@$cstat['dsize'][$statd1]));
$xx6=statval(intval(@$cstat['dsize'][$statd]));
$xx7=statval(intval(@$cstat['size']));
$xstat=xparse(skn("login_stat.html"));
}
echo xparse(skn("login_main.html"));
include("z-web-part2.php");
break;
case "joins":
if (!$conf['statgo']) exit("Ведение статистики отключено");
needstat();
if (!count(@$cstat['joins'])) exit("Данных статистики еще нет - никто не входил в чат");
include("z-web-part1.php");
$flag=$s[3]>=$admcmd['ip']?1:0;
echo "
Статистика
".
backlinks(array('home','login'))."
Последние входы в чат
N
Ник
Время
Как давно
";
if ($flag)
echo "
Хост
Доступ
ID юзера
ID компьютера
";
echo "
";
$i=1;
foreach ($cstat['joins'] as $k=>$v) {
echo "
";
}
else {
echo " Данных нет (никто не подошел под баны)
";
}
echo "
";
}
if ($s[3]>=$admcmd['viewadminban'])
echo "Поля хост, доступ и un показываются администраторам +$admcmd[ip].
Таблица 'Последние баны' и эта фраза - администраторам +$admcmd[viewadminban].";
include("z-web-part2.php");
break;
case "stats":
if (!$conf['statgo2'] || !$conf['statgo']) exit("Ведение расширенной статистики отключено");
needstat();
if (!count(@$cstat['dcnt'])) exit("Данных статистики еще нет - в чате никто ничего пока не сказал");
include("z-web-part1.php");
echo "
Сбор статистики с: ".date("d.m.Y H:i:s",$cstat['create'])."
Всего входов в чат: $cstat[join]
Максимум людей одновременно: $cstat[peak]
Всего отослано сообщений: $cstat[cnt], размером ".statval($cstat['size'])."Byte
Из них приватных: $cstat[cntpriv] (".@sprintf("%.1f",doubleval($cstat['cntpriv'])*100/$cstat['cnt'])."%)
Всего отключений от чата - kick: $cstat[ban]
Всего регистраций пользователей: $cstat[reg]
Статистика за несколько последних дней и месяцев
N
Дата (день)
Входов
Пик
Фраз
Их размер
Банов
Регистраций
Человеко-часов
";
$n=1;
$keys=array_keys($cstat['dcnt']);
rsort($keys);
for ($i=0; $i".
"
$n
".
"
$d.$m.$y
".
"
".@intval($cstat['djoin'][$loginthis])."
".
"
".@intval($cstat['dpeak'][$loginthis])."
".
"
".@intval($cstat['dcnt'][$loginthis])."
".
"
".@intval($cstat['dsize'][$loginthis])."
".
"
".@intval($cstat['dban'][$loginthis])."
".
"
".@intval($cstat['dreg'][$loginthis])."
".
"
".sprintf("%02d час %02d мин",floor(@doubleval(@$cstat['dp5'][$loginthis])/12),((@intval(@$cstat['dp5'][$loginthis])%12)*5))."
".
"";
$n++;
}
echo "
N
Месяц
Входов
Пик
Фраз
Их размер
Банов
Регистраций
Человеко-часов
";
$n=1;
$keys=array_keys($cstat['mcnt']);
rsort($keys);
$months=explode(' ',$rus_months);
for ($i=0; $i".
"
$n
".
"
".$months[$m-1]." $y
".
"
".@intval($cstat['mjoin'][$loginthis])."
".
"
".@intval($cstat['mpeak'][$loginthis])."
".
"
".@intval($cstat['mcnt'][$loginthis])."
".
"
".@intval($cstat['msize'][$loginthis])."
".
"
".@intval($cstat['mban'][$loginthis])."
".
"
".@intval($cstat['mreg'][$loginthis])."
".
"
".sprintf("%02d час %02d мин",floor(@doubleval(@$cstat['mp5'][$loginthis])/12),((@intval(@$cstat['mp5'][$loginthis])%12)*5))."
".
"";
$n++;
}
echo "
";
include("z-web-part2.php");
break;
case "login":
mainsecure();
if ($s[1]) exit("Нельзя проходить авторизацию, находясь в чате. Сначала выйдите из чата.");
if ($s[2] || $s[3]) {
refresh("$PHP_SELF?$sess",2,__FILE__,__LINE__);
exit("Вы уже авторизированы.
На страницу команд (автопереход через 3 секунды)");
}
include("z-web-part1.php");
echo "
Авторизация без входа в чат
".
backlinks(array('home','login'))."
";
if (isset($error)) echo "Ник или пароль неверные. Попробуйте еще раз...";
echo "
Примечание: воспользоваться авторизацией с паролем без входа в чат можно более удобным способом:
введите на главной странице ваш логин и пароль
нажмите Shift+Enter или мышкой кнопку 'Вход в чат', удерживая Shift
вы окажетесь не в чате, а на странице команд/информации 'Команды'
";
include("z-web-part2.php");
break;
case "slogin":
mainsecure();
checkref();
if ($s[1]) exit("нельзя проходить авторизацию, находясь в чате");
if ($s[2] || $s[3]) {
refresh("$PHP_SELF?$sess",3,__FILE__,__LINE__);
exit("Вы уже авторизированы.
На страницу команд (автопереход через 3 секунды)");
}
if (!isset($nick) || !isset($pass)) exit('errL1488');
$nick=substr(pregtrim($nick),0,100);
$s['nick']=$nick;
if (!dbload($nick,$info) || !checkpass($pass,$info['pass'])) {
refresh("$PHP_SELF?$sess&c=login&error=1",0,__FILE__,__LINE__);
return;
}
$s[2]=1;
$s['authnick']=sl($nick);
if (count($info[11])) foreach ($info[11] as $k=>$v) $s[11][$k]=$v;
// если это админ, заводим флаг авторизованного админа
conf2admlist();
if (isset($admlist) && isset($admlist[$s['authnick']])) {
$s[3]=$admlist[$s['authnick']];
if ($adminfo[$s['authnick']]['dead']) {
$s[3]=0;
putlog2("admin login: $s[nick] ($s[host]), access=$s[3] (blocked)");
}
else
putlog2("admin login: $s[nick] ($s[host]), access=$s[3]");
}
else
$s[3]=0;
if ($s[3]==0 && (
@$info[11]['good']==3 ||
$conf['join']==2 && @$info[11]['good']!=0 && @$info[11]['good']!=1 ||
$conf['join']==3 && @$info[11]['good']!=1 ||
$conf['join']==4))
{
$s[3]=0;
$s[2]=0;
$s['authnick']='';
include("z-web-part1.php");
echo backlinks(array('login')).xparse(skn("deny_join.html"));
include("z-web-part2.php");
return;
}
include("src/secure_reset.php");
refresh("$PHP_SELF?$sess",0,__FILE__,__LINE__);
break;
case "logout":
checkhack("logout",__FILE__,__LINE__);
if (!empty($export_url_logout)) exit(refresh($export_url_logout,0,__FILE__,__LINE__));
needuser();
if ($s[1] && isset($user[$s['nick']])) {
include_once("src/misc.php");
loaduser(1);
quituser($s['nick'],'exit');
saveuser();
}
setcookie($cookie_name,"",1);
include_once("src/misc.php");
cleanident();
cleanident2();
$s['authnick']="";
echo "Все ваши временные данные очищены.
<< Вернуться";
if (isset($gourl)) switch ($gourl) {
case "0": refresh("$url[login]?c=login$sess",0,__FILE__,__LINE__); break;
case "1": refresh("./?$sess",0,__FILE__,__LINE__); break;
}
else refresh("$PHP_SELF?$sess",0,__FILE__,__LINE__);
break;
case "reg":
if ($conf['newreg']>0) {
$tmp="Извините, в настоящий момент вы не сможете воспользоваться данной страницей
и зарегистрировать нового пользователя. Это настройка администратора чата.
Текущий статус: сейчас регистрация ";
switch ($conf['newreg']) {
case 1:
exit("$tmp запрещена всем");
case 2:
if (!$s[2] || !$s['authnick'])
exit("$tmp разрешена только авторизованным пользователям (вошедшим с логин/паролем)");
break;
case 3:
if (!$s[2] || !$s['authnick'] || $s[3]<100)
exit("$tmp разрешена только администраторам уровня 100 и выше");
break;
case 4:
if (!$s[2] || !$s['authnick'] || $s[3]<900)
exit("$tmp разрешена только администраторам уровня 900 и выше");
break;
case 5:
if (!$s[2] || !$s['authnick'] || $s[3]<1000)
exit("$tmp разрешена только только администраторам уровня 1000");
break;
}
}
mainsecure();
if ($s[1]) exit("Нельзя проходить регистрацию, находясь в чате. Выйдите из чата, а потом перейдите к регистрации повторно.");
check_config_update();
plugrun('reg_before',null,__FILE__,__LINE__);
define("loginform",1);
include_once("src/login_form.php");
// если был сабмит
if (isset($onSubmit)) {
include_once("src/misc.php");
if (strlen($form['nick'])) check_reg_nick($form['nick'],$error);
}
// сгенерировать форму регистрации
$buf=loginform_show("src/form_loginform.txt",get_defined_vars());
// если это первая загрузка или были ошибки - показать форму
if (!isset($onSubmit) || isset($error)) {
include("z-web-part1.php");
echo "
";
include_once("__other.php");
if (!isset($ni)) $ni="";
login_info($ni);
include("z-web-part2.php");
break;
case "useredit":
mainsecure();
needuser();
if (!$s[2] || $s['authnick']=="") exit("Вы не авторизованы, необходимо войти с паролем.");
define("loginform",1);
include_once("src/login_form.php");
$obj=unserialize(myfile("src/form_loginform.txt"));
conf2admlist();
$ni=sl(strip_tags(@substr($ni,0,100)));
if (sl($ni)!=sl($s['authnick']) && $s[3]<$GLOBALS['admcmd']['useredit']) {
echo "
Access Denied
";
return;
}
if (sl($ni)!=sl($s['authnick']) && isset($admlist[$ni]) &&
$s[3]>=$GLOBALS['admcmd']['useredit'] && $s[3]<=$admlist[$ni] && $s[3]<1000)
{
exit("Хоть вы и админ уровня $s[3], но не иметее право редактировать регистрационную
информацию пользователям с таким же или более высоким доступом.");
}
if (sl($s['authnick'])===$ni) $isme=1; else $isme=0;
if (!$isme) putlog2("login.php/редактирование анкеты юзера $ni (by $s[authnick], $s[3], $s[host], $s[0])");
if (!dbload($ni,$info)) {
echo "
";
$ni=finduser($ni);
if ($ni!==false && isset($user[$ni])) {
loaduser(1);
$user[$ni]['sex']=intval($form['sex']);
saveuser();
$s['sex']=intval($form['sex']);
}
}
include("z-web-part2.php");
break;
case "userpass":
mainsecure();
needuser();
include("z-web-part1.php");
$ni=strip_tags(trim(@substr($ni,0,100)));
if (sl($ni)==sl($admfirst) && $s['authnick']!==sl($admfirst)) exit("Сменить пароль владельцу чата нельзя. Только он сам может изменить свой пароль.
В данный момент вы пытатесь сменить пароль другому пользовалю.
Поэтому в поле СТАРЫЙ ПАРОЛЬ ничего не пишите.";
}
echo adminlinks($ni);
include("z-web-part2.php");
break;
case "userpass_post":
mainsecure();
needuser();
if (!$s[2] || $s['authnick']=="") exit("Вы не авторизованы, необходимо войти с паролем.");
if ($s["antihack_L2"]!=$antihack) exit("errL442: HackDetect");
if (sl($ni)==sl($admfirst) && $s['authnick']!==sl($admfirst)) exit("errL1459");
$ni_=strip_tags(@substr($ni,0,100));
$ni=sl($ni_);
conf2admlist();
if (sl($ni)!=sl($s['authnick']) && $s[3]<$GLOBALS['admcmd']['usernewpass']) {
exit("
Access Denied
");
}
if (sl($ni)!=sl($s['authnick']) && isset($admlist[$ni]) &&
$s[3]>=$GLOBALS['admcmd']['usernewpass'] && $s[3]<=$admlist[$ni] && $s[3]<1000)
{
exit("Хоть вы и админ уровня $s[3], но не иметее право менять пароль пользователям с
таким же или более высоким доступом.");
}
if (sl($s['authnick'])===$ni) $isme=1; else $isme=0;
if (!$isme) putlog2("login.php/смена пароля юзеру $ni (by $s[authnick], $s[3], $s[host], $s[0])");
if (!dbload($ni,$info)) {
exit("Пользователь [$ni] не найден");
}
if (sl($pass2)!==sl($pass3)) {
alert("Новые пароли не совпадают. Придумайте и два раза введите новый пароль в два поля.");
refresh("$url[login]?c=userpass&ni=".ue($ni)."$sess",0,__FILE__,__LINE__);
return;
}
if ($s[3]<$GLOBALS['admcmd']['usernewpass'] || sl($ni)==sl($admfirst)) {
if (sl($pass1)!==sl($info['pass'])) {
alert("Старый пароль введен не верно.");
refresh("$url[login]?c=userpass&ni=".ue($ni)."$sess",0,__FILE__,__LINE__);
return;
}
}
if (strlen($pass2)<3 || strlen($pass2)>100) {
alert("Новый пароль должен быть от 3 до 100 символов длины.");
refresh("$url[login]?c=userpass&ni=".ue($ni)."$sess",0,__FILE__,__LINE__);
return;
}
$info['pass']=sl($pass2);
if ($GLOBALS['export'] == 1) {
sql("UPDATE $export_dbtable SET pass='".($info['pass'])."' WHERE uname='".$ni."'");
} elseif($GLOBALS['export'] == 0) {
dbsave($ni,$info);
}
refresh("$url[login]?c=info&ni=".ue($ni_)."$sess",0,__FILE__,__LINE__);
break;
case "userdelete":
mainsecure();
needuser();
include("z-web-part1.php");
$ni=strip_tags(@substr($ni,0,100));
if (sl($ni)==sl($admfirst)) exit("Удалять владельца чата нельзя
";
include("z-web-part2.php");
break;
case "userdelete_post":
mainsecure();
needuser();
if (!$s[2] || $s['authnick']=="") exit("Вы не авторизованы, необходимо войти с паролем.");
if ($s["antihack_L3"]!=$antihack) exit("errL442: HackDetect");
$ni=sl(strip_tags(@substr($ni,0,100)));
conf2admlist();
if ($ni==sl($admfirst)) exit("Удалять владельца чата нельзя");
if (sl($ni)!=sl($s['authnick']) && $s[3]<$GLOBALS['admcmd']['userdelete']) {
exit("
Access Denied
");
}
if (sl($ni)!=sl($s['authnick']) && isset($admlist[$ni]) &&
$s[3]>=$GLOBALS['admcmd']['userdelete'] && $s[3]<=$admlist[$ni] && $s[3]<1000)
{
exit("Хоть вы и админ уровня $s[3], но не иметее право удалять пользователей с
таким же или более высоким доступом.");
}
if (sl($s['authnick'])===$ni) $isme=1; else $isme=0;
if (!$isme) putlog2("login.php/удаление юзера $ni (by ".mysmask().")");
if (!dbload($ni,$info)) {
exit("Пользователь [$ni] не найден");
}
if ($GLOBALS['export'] == 1) {
sql("DELETE FROM $export_dbtable WHERE uname='".$ni."'");
} elseif($GLOBALS['export'] == 0) {
dbremove($ni);
}
if (sl($ni)==sl($s['authnick'])) {
if (isset($user[$s['nick']])) {
include_once("src/misc.php");
loaduser(1);
quituser($s['nick'],"User removed by himself (from users database!)");
saveuser();
}
session_destroy();
}
else {
foreach ($user as $k=>$v) {
if (sl($k)==$ni) {
include_once("src/misc.php");
loaduser(1);
quituser($k,"User removed by $s[nick] (from users database!)");
saveuser();
break;
}
}
}
refresh("$url[login]?c=info&ni=".ue($ni)."$sess",0,__FILE__,__LINE__);
break;
case "setup":
mainsecure();
needuser();
if (!isset($ni) || !is_string($ni)) exit("errL828");
if ($s[2]!=1 || $s['authnick']=="") {
include(skn("__skin1.php"));
echo frame1()."Персональные настройки чата".frame2().
"Вы не авторизованы. Настройки чата
доступны только зарегистрированным пользователям.
Настройки дают возможность изменить много полезных опций
и сделать пребываение в чате более комфортным.
Настройки сохраняются на сервере и будут доступны вам с любого
компьютера, где вы подключетесь и войдете в чат.
Чтобы попасть на страницу настроек:
нажмите <ВЫХОД> (внизу справа) и покиньте чат
на главной странице чата выберите <РЕГИСТРАЦИЯ> и зарегистрируйтесь
войдите в чат, введя ваш ник и пароль".frame3();
exit;
}
$jsclose=@intval($jsclose);
$ni=strip_tags(@substr($ni,0,100));
$ni_=$ni;
$ni=sl($ni);
conf2admlist();
if (sl($s['authnick'])===$ni) $isme=1; else $isme=0;
if (!$isme && $s[3]<$GLOBALS['admcmd']['useredit']) {
echo "
Access Denied
";
return;
}
if (!$isme && isset($admlist[$ni]) &&
$s[3]>=$GLOBALS['admcmd']['useredit'] && $s[3]<=$admlist[$ni] && $s[3]<1000)
{
exit("Хоть вы и админ уровня $s[3], но не иметее право редактировать личные настройки
пользователям с таким же или более высоким доступом.");
}
if (!$isme) putlog2("login.php/настройки юзера $ni (by $s[authnick], $s[3], $s[host], $s[0])");
if (!dbload($ni,$info)) {
echo "
пользователь $ni_ не найден
";
return;
}
include_once(skn("__skin1.php"));
// шрифт ника
$lf_font_key=array();
$lf_font_var=array();
foreach ($listmain_f as $k=>$v) {
$lf_font_key[]=$k;
$lf_font_var[]="style='font: 10pt $v'$v";
}
// размер ника
$lf_ns_key=array();
$lf_ns_var=array();
for ($i=$listnick_s1; $i<=$listnick_s2; $i++) {
$lf_ns_key[]=$i;
$lf_ns_var[]="{$i}pt";
}
// цвет ника
$lf_nct_key=array();
$lf_nct_var=array();
foreach ($listnick_ct as $k=>$v) {
$lf_nct_key[]=$k;
$lf_nct_var[]="style='background:$v'";
}
// цвет фона ника
$lf_ncf_key=array();
$lf_ncf_var=array();
foreach ($listnick_cf as $k=>$v) {
$lf_ncf_key[]=$k;
$lf_ncf_var[]="style='background:$v'";
}
// размер сообщений
$lf_ts_key=array();
$lf_ts_var=array();
for ($i=$listtext_s1; $i<=$listtext_s2; $i++) {
$lf_ts_key[]=$i;
$lf_ts_var[]="{$i}pt";
}
// цвет сообщений
$lf_tct_key=array();
$lf_tct_var=array();
foreach ($listtext_ct as $k=>$v) {
$lf_tct_key[]=$k;
$lf_tct_var[]="style='background:$v'";
}
// цвет фона сообщений
$lf_tcf_key=array();
$lf_tcf_var=array();
foreach ($listtext_cf as $k=>$v) {
$lf_tcf_key[]=$k;
$lf_tcf_var[]="style='background:$v'";
}
// названия скинов
$lf_skins_k=array();
$lf_skins_v=array();
foreach ($skinlist as $k=>$v) {
if ($s[3]>=$v[0]) {
$lf_skins_k[]=$k;
$lf_skins_v[]=$v[1];
}
}
$xnick=html($ni_);
// загрузка анкеты юзера
load_s_file(0,"obj","src/form_setup.txt","buf2");
// удаление запрещенных для редактирования полей
foreach ($nickcss_vars as $k=>$v) {
if ($s[3]<$admcmd[$v]) unset($obj[$v]);
}
if ($s[3]<$admcmd['my_status']) unset($obj['my_status']);
if ($s[3]<$admcmd['usersetup']) unset($obj['good']);
$finduser=finduser($ni);
if ($finduser!==false) $inchat=1; else $inchat=0;
// сохранение старых значений полей для определения, не изменились ли они
$old_status="";
if ($finduser!==false && !empty($user[$finduser]['my_status'])) $old_status=$user[$finduser]['my_status'];
$is_status=0;
$old_tct=$s[11]['tct'];
$is_tct=0;
$old_skin=$s['skin'];
$is_skin=0;
// загрузка библиотеки phpLoginForm
define("LF_BLUR",1);
define("loginform",1);
include_once("src/login_form.php");
$LOAD=array();
// если не было сабмита
if (!isset($onSubmit)) {
$LOAD=$info[11];
}
// основная обработка формы
$buf=loginform_show($obj,get_defined_vars(),$LOAD);
if (!isset($onSubmit) || isset($error)) {
$frame1=frame1();
$frame2=frame2();
$frame3=frame3();
$xauthnick=ue($s['authnick']);
$xhelp=morehelp('',xparse(skn("login_setup_help.html")));
if ($jsclose) {
$xlinks=adminlinks($ni,"_blank");
echo xparse(skn("login_setup.html"),"",get_defined_vars());
}
else {
include("z-web-part1.php");
echo "
";
$soundpath=dellastslash($soundpath);
$tmp=array_keys($eventsinf);
$etype=html(@substr($etype,0,16));
if (empty($etype)) $etype=$tmp[0];
if (!isset($eventsinf[$etype])) exit("errL1228: HackDetect");
if (@strlen($info[11]["e_{$etype}_snd"])==0) $loginthis="";
elseif (isset($info[11]["e_{$etype}_snd"])) $loginthis=$info[11]["e_{$etype}_snd"];
if (!isset($info[11]["e_{$etype}_snd"])) $loginthisdef=$conf['_event']['main'][$etype.'u'][$eventsprm['snd'][0]];
if (!is_dir($soundpath)) exit("Не найден каталог $soundpath");
$dir=opendir("$soundpath") or exit("Ошибка открытия $soundpath");
$files=array();
while (($fn=readdir($dir))!==false) {
if (!preg_match("~(.+)\.($soundext)$~is",$fn,$ok)) continue;
$files[$fn]=array(filesize("$soundpath/$fn"), filemtime("$soundpath/$fn"), $ok[1]);
}
if (count($files)==0) {
echo "
Данная страница призвана помочь вам вовремя обратить
внимание на чат, если там происходит что-то интересное.
Довольно часто бывает ситуация, когда вы работаете в
других окнах и не видите, что в чате кто-то вас разыскивает.
Для сигнализации используются все возможные методы - звуки,
мигания, новые окна и т.д. Для каждого типа события
вы можете выбрать методы оповещения, которые сочтете нужными.
При измении параметров необходимо перегружать окно чата.
На эту страницу можно быстро попасть из чата,
удерживая Shift и кликнув калочку 'Спецэффекты'.
";
echo adminlinks($ni);
//pr($info);
include("z-web-part2.php");
break;
case "event_post":
if (!$conf['eventsgo']) exit("Извините, функция отключена");
mainsecure();
if (!check_operation($ni,1,"L5",false,"usersetup","смена звукового файла",$info,$isme)) exit("errL1167");
include_once("src/cnfvar.php");
$etype=html(@substr($etype,0,16));
if (!isset($eventsinf[$etype])) exit("err1230: HackDetect");
if ($sound=="my") $sound=$sndurl;
$sound=substr(preg_replace("![^a-z0-9/:.?%~ _-]!i","",str_replace("\\","/",@trim($sound))),0,500);
if (strlen($sound)==0)
unset($s[11]["e_{$etype}_snd"],$info[11]["e_{$etype}_snd"]);
else
$s[11]["e_{$etype}_snd"]=$info[11]["e_{$etype}_snd"]=$sound;
foreach ($eventsprm as $k=>$v) {
if ($v[2]!=2) continue;
$v=@trim($GLOBALS["form_$k"]);
if (strlen($v)==0)
unset($s[11]["e_{$etype}_$k"],$info[11]["e_{$etype}_$k"]);
else
switch ($k) {
case "vol":
$s[11]["e_{$etype}_$k"]=$info[11]["e_{$etype}_$k"]=max(min(abs(intval($v)),100),1);
break;
default:
$s[11]["e_{$etype}_$k"]=$info[11]["e_{$etype}_$k"]=min(abs(intval($v)),999999);
}
}
foreach ($eventsprm as $k=>$v) {
if ($v[2]!=1) continue;
if (isset($GLOBALS["form_$k"]) && strlen($GLOBALS["form_$k"])>0) {
if ($GLOBALS["form_$k"]=="1")
$s[11]["e_{$etype}_$k"]=$info[11]["e_{$etype}_$k"]="1";
else
$s[11]["e_{$etype}_$k"]=$info[11]["e_{$etype}_$k"]="0";
}
else
unset($s[11]["e_{$etype}_$k"],$info[11]["e_{$etype}_$k"]);
}
//exit(pr($sound).pr($_POST).pr($info[11]));
dbsave($ni,$info);
echo "Сохранено!
<<< Вернуться на предыдущую страницу
(через 2 сек)";
refresh("$PHP_SELF?c=event&etype=$etype&ni=".ue($ni)."$sess",2,__FILE__,__LINE__);
break;
default:
exit("\$c not set or unknown");
}
?>