Ошибка при заполнении формы:
$msg


"; echo "
$sessf "; //echo ""; foreach ($form as $k=>$v) { echo "\n"; } 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] "; else $xmain.="
  • Вы не администратор чата"; } else $xmain.="
  • Вы не авторизированы"; $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'))."
    Последние входы в чат "; if ($flag) echo " "; echo ""; $i=1; foreach ($cstat['joins'] as $k=>$v) { echo "". "":html($v[0])). "". ""; if ($flag) echo "". "". "". "". (!@empty($v[7])?"":""); echo ""; $i++; } echo "
    N Ник Время Как давноХост Доступ ID юзера ID компьютера
    $i". ($v[5]?"".html($v[0])."".date("d.m.Y H:i",$v[1])."".duration(time()-$v[1])."".html($v[3])."".($v[2]?$v[2]:'-')."$v[4]".@$v[6]."
    ".html(@$v[7])." 

    "; if ($s[3]>=$admcmd['viewadminban']) { echo "

    "; echo "Последние отказы во входе из-за банов"; if (count($cstat['joinsban'])) { echo ""; if ($s[3]>=$admcmd['ip']) echo " "; echo ""; $i=1; foreach ($cstat['joinsban'] as $k=>$v) { echo "". "". "". ""; if ($s[3]>=$admcmd['ip']) echo "". "". "". ""; echo ""; $i++; } echo "
    N Ник Время Как давноХост Доступ ID юзера ID компьютера
    $i".html($v[0])."".date("d.m.Y H:i",$v[1])."".duration(time()-$v[1])."".html($v[3])."".($v[2]?$v[2]:'-')."$v[4]".@$v[5]."

    "; } 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=1; $keys=array_keys($cstat['dcnt']); rsort($keys); for ($i=0; $i". "". "". "". "". "". "". "". "". "". ""; $n++; } echo " "; $n=1; $keys=array_keys($cstat['mcnt']); rsort($keys); $months=explode(' ',$rus_months); for ($i=0; $i". "". "". "". "". "". "". "". "". "". ""; $n++; } echo "
    N Дата (день)   Входов        Пик          Фраз     Их размер    Банов    Регистраций Человеко-часов
    $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 Месяц Входов Пик Фраз Их размер Банов Регистраций Человеко-часов
    $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))."
    "; 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 "
    $sessf
    Введите ваш ник: пароль:

    Примечание: воспользоваться авторизацией с паролем без входа в чат можно более удобным способом:
  • введите на главной странице ваш логин и пароль
  • нажмите 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 "

    Регистрация нового пользователя

    "; echo "<<< вернуться на главную страницу | на страницу команд

    "; echo $buf; include("z-web-part2.php"); } // если был пост и не было ошибок - зарегистрировать юзера else { plugrun('reg_after',null,__FILE__,__LINE__); $form[11]=array( "reg_ip"=>remoteaddr(), "reg_time"=>time(), ); if (dbload($form['nick'],$info)) err("errL1485"); if ($GLOBALS['export'] == 1) { sql("INSERT INTO $export_dbtable (uname,pass,name,url,user_icq,email,femail,user_from,user_sig,sex,year,forget,eye,hair,height) VALUE('".$form['nick']."', '".$form['pass']."', '".mysql_escape_string($form['name'])."', '".mysql_escape_string($form['url'])."', '".$form['icq']."', '".$form['mail']."', '".$form['pubmail']."', '".mysql_escape_string($form['location'])."', '".mysql_escape_string($form['about'])."', '".$form['sex']."', '".$form['year']."', '".$form['forget']."', '".mysql_escape_string($form['eye'])."', '".mysql_escape_string($form['hair'])."', '".mysql_escape_string($form['height'])."' )"); } elseif($GLOBALS['export'] == 0) { dbsave($form['nick'],$form); } $s[2]=1; $s[3]=0; $s['authnick']=$form['nick']; echo "

    $asessf
    "; if ($conf['statgo']) { loadstat(1); @$cstat['reg']++; @$cstat['dreg'][$statd]++; @$cstat['mreg'][$statm]++; savestat(); } } break; case "reg_ok": include("z-web-part1.php"); $xnick=ue($form['nick']); $xcrypt_pass=urlencode(encrypt($form['pass'],$cookie_pass)); $xsecure=$s['se']; $xjoinchat=antihack("joinchat"); echo xparse(skn("login_reg_ok.html")); include("z-web-part2.php"); break; case "forget": mainsecure(); include("z-web-part1.php"); $xadminmail=str_replace("@","@",$conf['adminmail']); $xadminmail=str_replace(".",".",$xadminmail); echo xparse(skn("login_forget.html")); include("z-web-part2.php"); break; case "sforget": mainsecure(); function forget_exit($stop) { global $PHP_SELF, $sess; refresh("$PHP_SELF?$sess&c=forget_done",0,__FILE__,__LINE__); if ($stop) exit(); } //if (isset($s['mailtime']) && time()-$s['mailtime']<120) forget_exit(); //$s['mailtime']=time(); $ni=sl(strip_tags(substr(@trim($ni),0,100))); $email=sl(strip_tags(substr(@trim($email),0,500))); if (!isset($ni) || pregchecknick($ni)!="ok") forget_exit(1); $mail=""; $info=array(); if (@dbload($ni,$info)!==true) exit("Пользователя с таким ником не существует."); if (isset($info['mail'])) $mail=$info['mail']; if ($mail=="") return; if ($info['forget']!=1) exit("Пользователь запретил отправку писем с паролями по почте."); if (sl($mail)!=$email) forget_exit(1); forget_exit(0); $html=myfile(skn("login_mail.html")); $html=str_replace("[pass]",$info['pass'],$html); $html=str_replace("[data]",date("d/m/Y H:i:s"),$html); $html=str_replace("[ref]",html(getenv('HTTP_REFERER')),$html); $html=str_replace("[www]",'http://'.getenv('HTTP_HOST').getenv('SCRIPT_NAME'),$html); $html=str_replace("[ip]",remoteaddr(),$html); $html=str_replace("[dns]",mygethostbyaddr(remoteaddr()),$html); $html=str_replace("[proxy1]",html(getenv('HTTP_CLIENT_IP')),$html); $html=str_replace("[proxy2]",html(getenv('HTTP_X_FORWARDED_FOR')),$html); $html=str_replace("[proxy3]",html(getenv('HTTP_VIA')),$html); $html=str_replace("[brouser]",user_agent(),$html); $smail=new html_mime_mail(); $smail->add_html($html); $smail->build_message('w'); $smail->send('',$mail,$conf['adminmail'],"Your password from chat.php.spb.ru"); putlog("mail send to $mail, nick=$ni, ip=".remoteaddr().", ref=". getenv('HTTP_REFERER').", browser=".user_agent(). ", proxy=".getenv('HTTP_VIA')); break; case "forget_done": include("z-web-part1.php"); echo xparse(skn("login_forget2.html")); include("z-web-part2.php"); break; case "info": mainsecure(); include("z-web-part1.php"); echo "

    Просмотр информации о зарегистрированных пользователях

    "; 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 не найден


    "; return; } include("z-web-part1.php"); unset($obj['nick']); unset($obj['pass']); unset($obj['pass2']); if (!isset($onSubmit)) $form=$info; $newantihack=getantihack(); $form_html=" "; $buf=loginform_show($obj,get_defined_vars()); if (!isset($onSubmit) || isset($error)) { $s["antihack_L1"]=$newantihack; echo "

    Изменение регистрационных данных пользователя $info[nick]

    <<< вернуться на главную страницу | на страницу команд | искать другого пользователя

    "; echo $buf; echo adminlinks($ni); } else { if ($s["antihack_L1"]!=$antihack) exit("errL442: HackDetect: $antihack"); $form['nick']=$info['nick']; $form['pass']=$info['pass']; $form[11]=$info[11]; if ($GLOBALS['export'] == 1) { sql("UPDATE $export_dbtable SET name='".mysql_escape_string($form['name'])."', url='".mysql_escape_string($form['url'])."', user_icq='".$form['icq']."', email='".$form['mail']."', femail='".$form['pubmail']."', user_from='".mysql_escape_string($form['location'])."', user_sig='".mysql_escape_string($form['about'])."', sex='".$form['sex']."', year='".$form['year']."', forget='".$form['forget']."', eye='".mysql_escape_string($form['eye'])."', hair='".mysql_escape_string($form['hair'])."', height='".mysql_escape_string($form['height'])."' WHERE uname='".$form['nick']."'"); } elseif($GLOBALS['export'] == 0) { dbsave($form['nick'],$form); } refresh("$url[login]?c=info&ni=".ue($ni)."$sess",3,__FILE__,__LINE__); echo "

    Запись изменена!



  • Повторное редактирование пользователя

  • Информация о пользователе (через 3 секунды авто переход)

  • На главную страницу



    "; $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("Сменить пароль владельцу чата нельзя. Только он сам может изменить свой пароль.

    "); $xnick=html($ni); $enick=ue($ni); $xantihack=antihackform("L2"); echo xparse(skn("login_userpass.html")); if (sl($ni)!=sl($s['authnick']) && $s[3]>=$GLOBALS['admcmd']['usernewpass']) { echo "

    В данный момент вы пытатесь сменить пароль другому пользовалю. Поэтому в поле СТАРЫЙ ПАРОЛЬ ничего не пишите."; } 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("Удалять владельца чата нельзя

    "); echo "

    Удаление пользователя

    <<< вернуться на главную страницу | искать другого пользователя




    Действительно удалить: $ni?
    $sessf
    Отменить удаление



    "; 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 "

    Персональные настройка чата пользователя ".html($info['nick'])."

    <<< вернуться на главную страницу | на страницу команд

    "; echo $buf; echo "
    "; echo adminlinks($ni); include("z-web-part2.php"); } } else { if (isset($form['my_status'])) strip_tags($form['my_status']); if (isset($form['my_infomsg'])) strip_tags($form['my_infomsg']); //$form['my_status']=@trim($form['my_status']); //$form['mymsg_blink']=intval($form['mymsg_blink']); //$form['msgforme_blink']=intval($form['msgforme_blink']); foreach ($form as $k=>$v) $info[11][$k]=$v; //dbsave($ni,$info); include_once("__other.php"); statusload(); userload(1); $head_refresh=0; $total_refresh=0; // // Персональный статус // if (isset($obj['my_status']) && $old_status!=$form['my_status']) { if ($inchat) { $user[$finduser]['my_status']=$form['my_status']; if (empty($form['my_status'])) cmsg_status($finduser,$confstatus[0]); else cmsg_status($finduser,$form['my_status']); write_www_sess($finduser); } if ($isme) $s['my_status']=$form['my_status']; } // // Цвет текстовых сообщений // if ($isme) { if ($old_tct!=$form['tct']) $head_refresh=1; foreach ($info[11] as $k=>$v) $s[11][$k]=$v; $x=explode("|",$s['nickcss']); foreach ($nickcss_vars as $k=>$v) { $x[$k]=@strval($form[$v]); if ($s[3]<$admcmd[$v] || $x[$k]==-1) $x[$k]=""; } $s['nickcss']=implode("|",$x); if ($inchat) $user[$finduser]['nickcss']=$s['nickcss']; } else { $x=array(); foreach ($nickcss_vars as $k=>$v) { $tmp=@strval($info[11][$v]); if ($tmp==-1) { $tmp=""; unset($info[11][$v]); } $x[]=$tmp; } $x=implode("|",$x); if ($inchat) $user[$finduser]['nickcss']=$x; } // // Скин // if (strpos($form['skin'],"/")===true || strpos($form['skin'],".")===true) exit("errL803: hackdetect"); if ($old_skin!=$form['skin']) { if ($inchat) { $user[$finduser]['skin']=$form['skin']; if ($isme) { $s['skin']=$form['skin']; if ($jsclose) $total_refresh=1; } } } dbsave($ni,$info); usersave(); // // Синхронизация с JS переменными: // if ($isme && $inchat && !empty($jsclose)) { echo ""; } if ($head_refresh && !empty($jsclose)) echo ""; if ($total_refresh && !empty($jsclose)) { echo ""; } if (isset($ButtonType) && $ButtonType) { refresh("$PHP_SELF?c=setup&ni=".html($ni_)."&jsclose=".@intval($jsclose).$sess,0,__FILE__,__LINE__); } else { if (!empty($jsclose)) { echo ""; } else { refresh("$url[login]?c=info&ni=".html($ni_)."$sess",0,__FILE__,__LINE__); } } } break; case "event": if (!$conf['eventsgo']) exit("Извините, функция отключена"); if (!$s[2]) exit("Извините, данная страница доступна только зарегистрированным пользователям"); if (empty($ni)) $ni=$s['authnick']; if (!@check_operation($ni,false,false,false,"usersetup","звуки-сигналы-спецэффекты",$info,$isme)) exit("errL1169"); mainsecure(); $ni=strip_tags(@substr($ni,0,100)); include("z-web-part1.php"); include_once("src/cnfvar.php"); echo "

    Настройка звуков, сигналов и спецэффектов на разные события чата для $info[nick] (справка)

    "; 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 "


    В каталоге $soundpath не найдены звуковые файлы


    "; include("z-web-part2.php"); return; } ksort($files); echo "

    Выберите тип события:

    Описание текущего выбранного события:

      {$eventsinf[$etype][1]}

    Выберите необходимые спецэффексты при наступлении данного события. ". morehelp(""," Слова 'Вкл/Откл', написанные наклонным шрифтом, являются значениями по-умолчанию (если вы их никак не выбирали), а жирным - выбранные вами значения для себя. По-умолчанию любое значение можеть быть либо включенным, либо отключенным. Ваш выбор перекроет это значение. Если вы пользуетесь функцией 'История важных сообщений', обязательно включите их запись, которая по-умолчанию может быть выключена.",0)."
    "; $defval=$conf['_event']['main'][$etype.'u']; foreach ($eventsprm as $k=>$v) { if (!$v[1]) continue; if (!empty($defval[$eventsprm[$k][0]])) $xinfo="вкл"; else $xinfo="откл"; if (isset($info[11]["e_{$etype}_$k"])) if (!empty($info[11]["e_{$etype}_$k"])) $xinfo="вкл"; else $xinfo="откл"; echo ""; } if (strlen($loginthis)==0) { if (empty($defval[$eventsprm['snd'][0]])) $xinfo="по-умолчанию - звук отключен"; else $xinfo="по-умолчанию - звук включен: $thisdef ". "(прослушать)"; } else { if ($loginthis==="0") $xinfo="звук отключен"; else $xinfo="звук включен (прослушать)"; } echo "
    По-умолчанию ТЕКУЩЕЕ
    ЗНАЧЕНИЕ
    ОТКЛЮЧИТЬ ВКЛЮЧИТЬ Список возможных реакций для выбранного в списке выше события
    $xinfo $v[3]
    "; echo "

    Воспроизводить звуковой сигнал из *.WAV, *.MID и других файлов: "; if (substr($loginthis,2)!="./" && $loginthis!=="0" && !empty($loginthis)) echo " "; else echo " "; foreach ($files as $k=>$v) { $desc="описания нет"; if (file_exists("$soundpath/$v[2].txt")) $desc=myfile("$soundpath/$v[2].txt"); echo " "; } echo "
    Выбор Файл Размер Описание Модификация Команды
    Текущее значение: $xinfo
    По-умолчанию
    Отключить этот звук
    Ввести произвольный URL:
    Используйте звуки только со своего сайта! Не вписывайте сюда ничего, если это вам кто-то посоветует в чате! Это может быть очень опасно (см. справку).
    прослушать
    справка
    Ввести произвольный URL:
    Используйте звуки только со своего сайта! Не вписывайте сюда ничего, если это вам кто-то посоветует в чате, это может быть опасно (см. справку).
    справка
    $k ".statval($v[0])." $desc ".date("d.m.Y",$v[1])." прослушать
    "; $kk="vol"; $xval=""; if (@strlen($info[11]["e_{$etype}_{$kk}"])==0) { $xinfo=intval($defval[$eventsprm[$kk][0]])."% (по-умолчанию)"; } else { $xval=intval($info[11]["e_{$etype}_{$kk}"]); $xinfo="$xval%"; } echo "Громкость звука от 0 до 100: %. Текущее значение: $xinfo.
    "; $kk="loop"; $xval=""; if (@strlen($info[11]["e_{$etype}_{$kk}"])==0) { $xinfo=intval($defval[$eventsprm[$kk][0]])." (по-умолчанию)"; } else { $xval=intval($info[11]["e_{$etype}_{$kk}"]); $xinfo="$xval"; } echo "Сколько раз подряд играть звук: раз. Текущее значение: $xinfo.

    "; if (@strlen($info[11]["e_{$etype}_time"])==0) { $xval=intval($defval[$eventsprm['time'][0]]); if (!$xval) $xinfo="по-умолчанию - запускать спецэффекты каждый раз (постоянно)"; else $xinfo="по-умолчанию - запуск не чаще одного раза за $xval сек."; $xval=""; } else { $xval=intval($info[11]["e_{$etype}_time"]); if (!$xval) $xinfo="запускать спецэффекты каждый раз (постоянно)"; else $xinfo="запуск не чаще одного раза за $xval сек."; } echo "

    Защита от надоедливости.
    Воспроизводить спецэффекты не чаще одного раза в сек.
    Текущее значение: $xinfo. ". morehelp(""," Введите число в секундах, означающих паузу. Введите 0 для постоянных запусков спецэффектов. Очистите это поле, чтобы использовать настройку времени по-умолчанию. В течении указанного кол-ва секунд чат будет игнорировть повторно сработавшее событие, чтобы не слишком часто вас отвлекать. В не зависимости от этого, сообщения таки будут сохраняться в истории, если включена опция 'записывать важные сообщения'.",0). "


    После сохранения нажмите клавишу F5 в чате, для обновления всей страницы!
    Данная страница призвана помочь вам вовремя обратить внимание на чат, если там происходит что-то интересное. Довольно часто бывает ситуация, когда вы работаете в других окнах и не видите, что в чате кто-то вас разыскивает. Для сигнализации используются все возможные методы - звуки, мигания, новые окна и т.д. Для каждого типа события вы можете выбрать методы оповещения, которые сочтете нужными. При измении параметров необходимо перегружать окно чата. На эту страницу можно быстро попасть из чата, удерживая 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"); } ?>