",'>',$text); $text=str_replace("<",'<',$text); $text=str_replace("\"",'"',$text); $text=preg_replace("/\n\n/",'

',$text); $text=preg_replace("/\n/",'
',$text); $text=preg_replace("/\\\$/",'$',$text); $text=preg_replace("/\r/",'',$text); $text=preg_replace("/\\\/",'\',$text); $text=str_replace("\r\n","
",$text); $text=str_replace("\n\n",'

',$text); $text=str_replace("\n",'
',$text); $text=str_replace("\t",'',$text); $text=str_replace("\r",'',$text); $text=str_replace(' ',' ',$text); return $text; } // Выбран ВЫХОД - очищаем куки if(isset($_GET['event'])) { if ($_GET['event']=="clearcooke") { setcookie("wrforumm","",time()-3600); Header("Location: index.php"); exit; } } if (isset($_COOKIE['wrforumm'])) { // Сверяем имя/пароль из КУКИ с заданным в конфиг файле $text=$_COOKIE['wrforumm']; $text=trim($text); // Вырезает ПРОБЕЛьные символы if (strlen($text)>60) {exit("Попытка взлома - длина переменной куки сильно большая!");} $text=replacer($text); $exd=explode("|",$text); $name1=$exd[0]; $pass1=$exd[1]; if ($name1!=$adminname and $pass1!=$adminpass) {sleep(1); setcookie("wrforumm", "0", time()-3600); Header("Location: admin.php"); exit;} // убаваем НЕВЕРНУЮ КУКУ!!! } else { // ЕСЛИ ваще нету КУКИ if (isset($_POST['name']) & isset($_POST['pass'])) { // Если есть переменные из формы ввода пароля $name=str_replace("|","I",$_POST['name']); $pass=str_replace("|","I",$_POST['pass']); $text="$name|$pass|"; $text=trim($text); // Вырезает ПРОБЕЛьные символы if (strlen($text)<4) {exit("$back Вы не ввели имя или пароль!");} $text=replacer($text); $exd=explode("|",$text); $name=$exd[0]; $pass=$exd[1]; //$qq=md5("$pass+$skey"); print"$qq"; exit; // РАЗБЛОКИРУЙТЕ для получения MD5 своего пароля! /* //--А-Н-Т-И-С-П-А-М--проверка кода-- if ($antispam!="0") { $bada="$back Введённый вами код НЕ верен!"; if (isset($_POST['usernum'])) {$usernum=$_POST['usernum'];} else {exit("$bada");} if (isset($_POST['xkey'])) {$xkey=$_POST['xkey'];} else {exit("$bada");} $userkey=md5("$usernum+$absrand"); if ($userkey!=$xkey) {exit("$bada");}} //--А-Н-Т-И-С-П-А-М--проверка кода-- */ // Сверяем введённое имя/пароль с заданным в конфиг файле // АДМИНИСТРАТОРУ присваиваются куки if (true) {$tektime=time(); $wrforumm="$adminname[0]|$adminpass|$tektime|"; setcookie("wrforumm", $wrforumm, time()+18000); Header("Location: admin.php"); exit;} exit("$back Ваш данные ОШИБОЧНЫ!"); } else { // если нету данных, то выводим ФОРМУ ввода пароля echo "


"; /* //-А-Н-Т-И-С-П-А-М- if ($antispam!="0") { // Вывод изображений на экран (все кодированы - робот не пройдёт) if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"]; for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} } $xkey=""; mt_srand(time()+(double)microtime()*1000000); echo'
Администрирование форума
Введите логин:
Введите пароль:
Защитный код: '; for ($i=0; $i<$maxkey; $i++) { $snum[$i]=mt_rand(0,9); $psnum=md5($snum[$i]+$absrand); $phpself=$_SERVER["PHP_SELF"]; echo "\n"; $xkey=$xkey.$snum[$i];} $xkey=md5("$xkey+$absrand"); print" "; } // if $antispam!="0" //-К-О-Н-Е-Ц--А-Н-Т-И-С-П-А-М-А- */ print"


Powered by WR-Forum © 1.8 eXclusive
"; exit;} } // АВТОРИЗАЦИЯ ПРОЙДЕНА! $gbc=$_COOKIE['wrforumm']; $gbc=explode("|", $gbc); $gbname=$gbc[0];$gbpass=$gbc[1];$gbtime=$gbc[2]; // АКТИВАЦИЯ пользователя if(isset($_GET['event'])) { if ($_GET['event']=="activate") { $key=$_GET['key']; $email=$_GET['email']; $page=$_GET['page']; // защиты от взлома по ключу и емайлу if (strlen($key)<6 or strlen($key)>6 or !ctype_digit($key)) {exit("$back. Вы ошиблись при вводе ключа. Ключ может содержать только 6 цифр.");} $email=stripslashes($email); $email=htmlspecialchars($email); $email=str_replace("|","I",$email); $email=str_replace("\r\n","
",$email); if (strlen($key)>30) {exit("Ошибка при вводе емайла");} // Ищем юзера с таким емайлом и ключом. Если есть - меняем статус на пустое поле $email=strtolower($email); unset($fnomer); unset($ok); $lines=file("$datadir/usersdat.php"); $ui=count($lines); $i=$ui; do {$i--; $rdt=explode("|",$lines[$i]); $rdt[3]=strtolower($rdt[3]); if ($rdt[3]===$email and $rdt[13]===$key) {$name=$rdt[0]; $pass=$rdt[1]; $fnomer=$i;} if ($rdt[3]===$email and $rdt[13]==="") {$ok="1";} } while($i > 1); if (isset($fnomer)) { // обновление строки юзера в БД $i=$ui; $dt=explode("|", $lines[$fnomer]); $txtdat="$dt[0]|$dt[1]|$dt[2]|$dt[3]|$dt[4]|$dt[5]|$dt[6]|$dt[7]|$dt[8]|$dt[9]|$dt[10]|$dt[11]|$dt[12]||"; $fp=fopen("$datadir/usersdat.php","a+"); flock ($fp,LOCK_EX); ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА for ($i=0;$i<=(sizeof($lines)-1);$i++) {if ($i==$fnomer) {fputs($fp,"$txtdat\r\n");} else {fputs($fp,$lines[$i]);}} fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); } if (!isset($fnomer) and !isset($ok)) {exit("$back. Вы ошиблись в воде активационного ключа или емайла.
");} if (isset($ok)) {$add="Запись активирована ранее";} else {$add="$name, Пользователь успешно зарегистрирован.";} print"
Спасибо, $add.

Через несколько секунд Вы будете автоматически перемещены на страницу с участниками форума.

Нажмите здесь, если не хотите больше ждать
"; exit; } } // Блок ПЕРЕСЧЁТА кол-ва тем и сообщений if(isset($_GET['event'])) { if ($_GET['event'] =="revolushion") { $lines = file("$datadir/mainforum.dat"); $countmf=count($lines)-1; $i="-1";$u=$countmf-1;$k="0"; do {$i++; $dt=explode("|", $lines[$i]); if (!isset($dt[12])) {$dt[12]=""; $dt[11]="";} if ($dt[1]!="razdel") { $fid=$dt[0]; if ((is_file("$datadir/topic$fid.dat")) && (sizeof("$datadir/topic$fid.dat")>0)) { $fl=file("$datadir/topic$fid.dat"); $kolvotem=count($fl); $kolvomsg="0"; for ($itf=0; $itf<$kolvotem; $itf++) {$forumdt = explode("|", $fl[$itf]); $cd=$forumdt[7]; $msgfile=file("$datadir/$cd.dat"); $countmsg=count($msgfile); $kolvomsg=$kolvomsg+$countmsg;} if ($kolvotem=="0") {$dt[8]="";} $lines[$i]="$dt[0]|$dt[1]|$dt[2]|$dt[3]|$kolvotem|$kolvomsg|$dt[6]|$dt[7]|$dt[8]|$dt[9]|$dt[10]|$dt[11]|$dt[12]|\r\n"; } else {$kolvotem="0"; $kolvomsg="0"; $lines[$i]="$dt[0]|$dt[1]|$dt[2]|$dt[3]|$kolvotem|$kolvomsg|$dt[6]|$dt[7]|$dt[8]||$dt[10]|$dt[11]|$dt[12]|\r\n";} } else {$lines[$i]="$dt[0]|$dt[1]|$dt[2]|\r\n";} } while($i < $countmf); // сохраняем обновлённые данные о кол-ве тем и сообщений в файле $file=file("$datadir/mainforum.dat"); $fp=fopen("$datadir/mainforum.dat","w"); flock ($fp,LOCK_EX); for ($i=0;$i< sizeof($file);$i++) {fputs($fp,$lines[$i]);} flock ($fp,LOCK_UN); fclose($fp); print "



Всё успешно пересчитано.
"; exit; }} // Блок удаления УЧАСТНИКА ФОРУМА if(isset($_GET['udel'])) { if ($_GET['udel'] !="") { if (isset($_GET['page'])) {$page=$_GET['page'];} else {$page=1;} $udel=$_GET['udel']-1; $file=file("$datadir/usersdat.php"); $i=count($file); if ($i<3) {exit("$back. Необходимо оставить хотябы ОДНОГО участника!");} $fp=fopen("$datadir/usersdat.php","w"); // удаляем строку с участником flock ($fp,LOCK_EX); for ($i=0;$i< sizeof($file);$i++) { if ($i==$udel) {unset($file[$i]);} } fputs($fp, implode("",$file)); flock ($fp,LOCK_UN); fclose($fp); // Удаляем инфу о юзере из блока статистики - ДОРАБОТАТЬ блок!!!! // сейчас делаю просто удалить ту запись, которая соответствует номеру // но в идеале нужно проверять всю статистику и собирать файл // заново - чтобы исключить любые ошибки // также нужно добавить в блок пересчёта - блок пересчитывающий статистику!!! $file=file("$datadir/userstat.dat"); $i=count($file); $fp=fopen("$datadir/userstat.dat","w"); // удаляем строку с участником flock ($fp,LOCK_EX); for ($i=0;$i< sizeof($file);$i++) { if ($i==$udel) {unset($file[$i]);} } fputs($fp, implode("",$file)); flock ($fp,LOCK_UN); fclose($fp); Header("Location: admin.php?event=userwho&page=$page"); exit; } } // Блок ПЕРЕСЧЁТА СТАТИСТИКИ участников if(isset($_GET['newstatistik'])) { $lines=null; $ok=null; // 1. Открываем и считываем в память файл с юзерами $ulines=file("$datadir/usersdat.php"); $ui=count($ulines); // 2. Открываем файл статистики $slines=file("$datadir/userstat.dat"); $si=count($slines)-1; // Цикл по кол-ву юзеров в базе for ($i=1;$i<$ui;$i++) { $udt=explode("|", $ulines[$i]); if ($i<=$si) {$sdt=explode("|", $slines[$i]);} else {$sdt[0]="";} if ($udt[0]==$sdt[0]) {$udt[0]=str_replace("\r\n","",$udt[0]); $ok=1; if (isset($sdt[1]) and isset($sdt[2]) and isset($sdt[3]) and isset($sdt[4])) {$lines[$i]="$slines[$i]";} else {$lines[$i]="$udt[0]|0|0|0|0|||||\r\n";}} // если имя=имя - значит данные верны // Цикл в файле статистики - поиск строку текущего юзера if ($ok!="1") { for ($j=1;$j<$si;$j++) { $sdt=explode("|", $slines[$j]); if ($udt[0]==$sdt[0]) {$ok=1; $lines[$i]=$slines[$j]; }// если имя=имя - значит данные верны } if ($ok!="1") {$lines[$i]="$udt[0]|0|0|0|0|||||\r\n";} // создаём юзера с нулевой статистикой } $ok=null; $ii=count($lines);} $fp=fopen("$datadir/userstat.dat","a+"); flock ($fp,LOCK_EX); ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА fputs($fp,"ИМЯ_ЮЗЕРА|Тем|Сообщений|Репутация|Предупреждения Х/5|Когда последний раз меняли рейтинг в UNIX формате|||\r\n"); for ($i=1;$i<=$ii;$i++) {fputs($fp,"$lines[$i]");} fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); Header("Location: admin.php?event=userwho"); exit; } // Блок изменения СТАТУСА участника if(isset($_GET['newstatus'])) { if ($_GET['newstatus'] !="") { $newstatus=$_GET['newstatus']-1; $status=$_POST['status']; if (isset($_GET['page'])) {$page=$_GET['page'];} else {$page=1;} if (strlen($status)<3) {exit("новый статус участника < 3 символов - это не серьёзно!");} $status=htmlspecialchars($status); $status=stripslashes($status); $status=str_replace("|"," ",$status); $status=str_replace("\r\n","
",$status); $lines=file("$datadir/usersdat.php"); $i=count($lines); $dt=explode("|", $lines[$newstatus]); $txtdat="$dt[0]|$dt[1]|$dt[2]|$dt[3]|$dt[4]|$dt[5]|$dt[6]|$dt[7]|$dt[8]|$dt[9]|$dt[10]|$dt[11]|$dt[12]|$status|"; $fp=fopen("$datadir/usersdat.php","a+"); flock ($fp,LOCK_EX); ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА for ($i=0;$i<=(sizeof($lines)-1);$i++) {if ($i==$newstatus) {fputs($fp,"$txtdat\r\n");} else {fputs($fp,$lines[$i]);}} fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); Header("Location: admin.php?event=userwho&page=$page"); exit; } } // Блок изменения РЕЙТИНГА участника if(isset($_GET['newreiting'])) { if ($_GET['newreiting'] !="") { $newreiting=$_GET['newreiting']-1; $reiting=$_POST['reiting']; if (isset($_GET['page'])) {$page=$_GET['page'];} else {$page=1;} $reiting=htmlspecialchars($reiting); $reiting=stripslashes($reiting); $reiting=str_replace("|"," ",$reiting); $reiting=str_replace("\r\n","
",$reiting); $lines=file("$datadir/usersdat.php"); $i=count($lines); $dt=explode("|", $lines[$newreiting]); $txtdat="$dt[0]|$dt[1]|$reiting|$dt[3]|$dt[4]|$dt[5]|$dt[6]|$dt[7]|$dt[8]|$dt[9]|$dt[10]|$dt[11]|$dt[12]|$dt[13]|"; $fp=fopen("$datadir/usersdat.php","a+"); flock ($fp,LOCK_EX); ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА for ($i=0;$i<=(sizeof($lines)-1);$i++) {if ($i==$newreiting) {fputs($fp,"$txtdat\r\n");} else {fputs($fp,$lines[$i]);}} fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); Header("Location: admin.php?event=userwho&page=$page"); exit; } } // изменяем РЕПУТАЦИЮ юзера if(isset($_GET['newrepa'])) { if (isset($_GET['page'])) {$page=$_GET['page'];} else {$page=1;} $text=$_POST['repa']; $usernum=$_POST['usernum']-1; $text=htmlspecialchars($text); $text=stripslashes($text); $text=str_replace("|"," ",$text); $repa=str_replace("\r\n","
",$text); $lines=file("$datadir/userstat.dat"); $dt=explode("|", $lines[$usernum]); $txtdat="$dt[0]|$dt[1]|$dt[2]|$repa|$dt[4]|$dt[5]|$dt[6]|$dt[7]|||"; $fp=fopen("$datadir/userstat.dat","a+"); flock ($fp,LOCK_EX); ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА for ($i=0;$i<=(sizeof($lines)-1);$i++) {if ($i==$usernum) {fputs($fp,"$txtdat\r\n");} else {fputs($fp,$lines[$i]);}} fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); Header("Location: admin.php?event=userwho&page=$page"); exit; } // Добавляем/снимаем ШТРАФЫ ЮЗЕРУ if(isset($_GET['userstatus'])) { if (isset($_GET['page'])) {$page=$_GET['page'];} else {$page=1;} $text=$_POST['submit']; $status=$_POST['status']; $usernum=$_POST['usernum']-1; $text=htmlspecialchars($text); $text=stripslashes($text); $text=str_replace("|"," ",$text); $submit=str_replace("\r\n","
",$text); if (!ctype_digit($status)) $status=0; $status=$status+$submit; // корректируем статус (+1 или -1) // 0 <= СТАТУС <= 5 (БОЛЬШЕ ЛИБО РАВЕН НУЛЮ, НО МЕНЬШЕ ЛИБО РАВЕН ПЯТИ) if($status<0 or $status>5) {exit("$back статус пользователя БОЛЬШЕ ЛИБО РАВЕН НУЛЮ, НО МЕНЬШЕ ЛИБО РАВЕН ПЯТИ!");} $lines=file("$datadir/userstat.dat"); if (!isset($lines[$usernum])) { exit("ошибка! Нет такого пользователя в файле статистики!");} // если нет такой строка в файле статистики $dt=explode("|", $lines[$usernum]); // В версии 1.8.2 ещё было 5 полей в строке файла userstat.dat. // Защищаемся от ошибки - вводим пустые поля if (!isset($dt[6])) {$dt[6]="";} if (!isset($dt[7])) {$dt[7]="";} $dt[6]=str_replace("\r\n","",$dt[6]); $dt[7]=str_replace("\r\n","",$dt[7]); $txtdat="$dt[0]|$dt[1]|$dt[2]|$dt[3]|$status|$dt[5]|$dt[6]|$dt[7]|||"; $fp=fopen("$datadir/userstat.dat","a+"); flock ($fp,LOCK_EX); ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА for ($i=0;$i<=(sizeof($lines)-1);$i++) {if ($i==$usernum) {fputs($fp,"$txtdat\r\n");} else {fputs($fp,$lines[$i]);}} fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); Header("Location: admin.php?event=userwho&page=$page"); exit; } // Блок ПЕРЕМЕЩЕНИЯ ВВЕРХ/ВНИЗ РАЗДЕЛА или ТОПИКА if(isset($_GET['movetopic'])) { if ($_GET['movetopic'] !="") { $move1=$_GET['movetopic']; $where=$_GET['where']; if ($where=="0") {$where="-1";} $move2=$move1-$where; $file=file("$datadir/mainforum.dat"); $imax=sizeof($file); if (($move2>=$imax) or ($move2<"0")) {exit(" НИЗЯ туда двигать!");} $data1=$file[$move1]; $data2=$file[$move2]; $fp=fopen("$datadir/mainforum.dat","a+"); flock ($fp,LOCK_EX); ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА // меняем местами два соседних раздела for ($i=0; $i<$imax; $i++) {if ($move1==$i) {fputs($fp,$data2);} else {if ($move2==$i) {fputs($fp,$data1);} else {fputs($fp,$file[$i]);}}} fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); Header("Location: admin.php"); exit; }} // Блок УДАЛЕНИЯ выбранного РАЗДЕЛА или ФОРУМА if(isset($_GET['fxd'])) { if ($_GET['fxd'] !="") { $fxd=$_GET['fxd']; $file=file("$datadir/mainforum.dat"); // удаляем строку, соответствующую теме в файле со всеми темами $fp=fopen("$datadir/mainforum.dat","w"); flock ($fp,LOCK_EX); for ($i=0;$i< sizeof($file);$i++) { if ($i==$fxd) {unset($file[$i]);} } fputs($fp, implode("",$file)); flock ($fp,LOCK_UN); fclose($fp); Header("Location: admin.php"); exit; } } // Блок удаления выбранной ТЕМЫ if (isset($_GET['xd'])) { if ($_GET['xd'] !="") { if (isset($_GET['page'])) {$page=$_GET['page'];} else {$page="0";} $xd=$_GET['xd']; $fid=$_GET['fid']; $id=$_GET['id']; $file=file("$datadir/topic$fid.dat"); $minmsg=1; $delf=null; if (isset($file[$xd])) { $dt=explode("|", $file[$xd]); $delf = str_replace("\r\n", "", $dt[7]); $mlines=file("$datadir/$delf.dat"); $minmsg=count($mlines); unlink ("$datadir/$delf.dat");} // удаляем файл с темой // удаляем строку, соответствующую теме в файле с текущими темами $fp=fopen("$datadir/topic$fid.dat","w"); $kolvotem=sizeof($file)-1; // кол-во тем для уточнения на главной flock ($fp,LOCK_EX); for ($i=0;$i< sizeof($file);$i++) { if ($i==$xd) {unset($file[$i]);} } fputs($fp, implode("",$file)); flock ($fp,LOCK_UN); fclose($fp); // Блок вычитает 1-цу из кол-ва тем и вычитает кол-во сообщений $lines = file("$datadir/mainforum.dat"); $i=count($lines); // находим по fid номер строки for ($ii=0;$ii< sizeof($lines);$ii++) {$kdt=explode("|",$lines[$ii]); if ($kdt[0]==$fid) {$mnumer=$ii;}} $dt=explode("|",$lines[$mnumer]); $dt[5]=$dt[5]-$minmsg; if ($kolvotem=="0") {$dt[5]="0";} if ($dt[5]<0) $dt[5]="0"; if ($dt[4]<0) $dt[4]="0"; // если удаляемая тема стоит на главной как последняя, то удаляем её с главной if ($dt[3]==$delf or $dt[5]==0) {$dt[6]="";$dt[7]="";$dt[8]="";$dt[9]="";$dt[10]="";} $text="$dt[0]|$dt[1]|$dt[2]|$dt[3]|$kolvotem|$dt[5]|$dt[6]|$dt[7]|$dt[8]|$dt[9]|$dt[10]|$dt[11]|$dt[12]||"; $file=file("$datadir/mainforum.dat"); $fp=fopen("$datadir/mainforum.dat","a+"); flock ($fp,LOCK_EX); ftruncate ($fp,0); for ($ii=0;$ii< sizeof($file);$ii++) { if ($mnumer!=$ii) {fputs($fp,$file[$ii]);} else {fputs($fp,"$text\r\n");} } fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); // удаляем объявление из 10-КИ последних $file=file("$datadir/news.dat"); $fp=fopen("$datadir/news.dat","w"); flock ($fp,LOCK_EX); for ($i=0; $i< sizeof($file); $i++) { $dt=explode("|",$file[$i]); if ($dt[1]==$id) {unset($file[$i]);} } fputs($fp, implode("",$file)); flock ($fp,LOCK_UN); fclose($fp); Header("Location: admin.php?fid=$fid&page=$page"); exit; } } // Блок УДАЛЕНИЯ выбранного СООБЩЕНИЯ if (isset($_GET['topicxd'])) { if ($_GET['topicxd'] !="") { $fid=$_GET['fid']; $id=$_GET['id']; $topicxd=$_GET['topicxd']-1; if (isset($_GET['page'])) {$page=$_GET['page'];} else {$page="1";} $file=file("$datadir/$id.dat"); if (count($file)==1) {exit("В ТЕМЕ должно остаться хотябы одно сообщение!");} $fp=fopen("$datadir/$id.dat","w"); flock ($fp,LOCK_EX); for ($i=0;$i< sizeof($file);$i++) { if ($i==$topicxd) {unset($file[$i]);} } fputs($fp, implode("",$file)); flock ($fp,LOCK_UN); fclose($fp); $topicxd--; // Блок вычитает 1-цу из кол-ва сообщений на главной $lines = file("$datadir/mainforum.dat"); $i=count($lines); // находим по fid номер строки for ($ii=0;$ii< sizeof($lines);$ii++) {$kdt=explode("|",$lines[$ii]); if ($kdt[0]==$fid) {$mnumer=$ii;}} $dt=explode("|",$lines[$mnumer]); $dt[5]--; if ($dt[5]<0) $dt[5]="0"; $text="$dt[0]|$dt[1]|$dt[2]|$dt[3]|$dt[4]|$dt[5]|$dt[6]|$dt[7]|$dt[8]|$dt[9]|$dt[10]|$dt[11]||$dt[12]||"; $file=file("$datadir/mainforum.dat"); $fp=fopen("$datadir/mainforum.dat","a+"); flock ($fp,LOCK_EX); ftruncate ($fp,0); for ($ii=0;$ii< sizeof($file);$ii++) { if ($mnumer!=$ii) {fputs($fp,$file[$ii]);} else {fputs($fp,"$text\r\n");} } fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); Header("Location: admin.php?fid=$fid&id=$id&page=$page#m$topicxd"); exit; } } // Добавление ФОРУМА / РАЗДЕЛА if(isset($_GET['event'])) { if ($_GET['event'] =="addmainforum") { $ftype=$_POST['ftype']; $zag=$_POST['zag']; $msg=$_POST['msg']; if ($zag=="") {exit("$back и введите заголовок!");} // пробегаем по файлу с номерами разделов/топиков - ищем наибольшее и добавляем +1 $nextnum="0"; if (is_file("$datadir/mainforum.dat")) { $lines=file("$datadir/mainforum.dat"); $imax = count($lines); $i=0; do {$dt = explode("|", $lines[$i]); if ($nextnum<$dt[0]) {$nextnum=$dt[0];} $i++; } while($i < $imax); $nextnum++;} $zag=str_replace("|","I",$zag); $msg=str_replace("|","I",$msg); if ($ftype == "") {$txtmf="$nextnum|$zag|$msg||0|0||$date|$time||||||";} else {$txtmf="$nextnum|$ftype|$zag|";} $txtmf=htmlspecialchars($txtmf); $txtmf=stripslashes($txtmf); $txtmf=str_replace("\r\n","
",$txtmf); // запись данных на главную страницу $fp=fopen("$datadir/mainforum.dat","a+"); flock ($fp,LOCK_EX); fputs($fp,"$txtmf\r\n"); fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); Header("Location: admin.php"); exit; } // Редактирование ФОРУМА / РАЗДЕЛА if ($_GET['event'] =="frdmainforum") { $nextnum=$_POST['nextnum']; $frd=$_POST['frd']; $ftype=$_POST['ftype']; $zag=$_POST['zag']; if ($zag=="") {exit("$back и введите заголовок!");} $zag=str_replace("|","I",$zag); if ($ftype == "") { $addmax=$_POST['addmax']; $zvezdmax=$_POST['zvezdmax']; $msg=$_POST['msg'];$idtemka=$_POST['idtemka'];$kt=$_POST['kt'];$km=$_POST['km'];$namem=$_POST['namem'];$datem=$_POST['datem'];$timem=$_POST['timem'];$temka=$_POST['temka'];$timetk=$_POST['timetk']; $msg=str_replace("|","I",$msg); $msg=str_replace("\r\n", "
", $msg); $txtmf="$nextnum|$zag|$msg|$idtemka|$kt|$km|$namem|$datem|$timem|$timetk|$temka|$addmax|$zvezdmax||";} else {$txtmf="$nextnum|$ftype|$zag|";} $txtmf=htmlspecialchars($txtmf); $txtmf=stripslashes($txtmf); $txtmf=str_replace("\r\n","
",$txtmf); $file=file("$datadir/mainforum.dat"); $fp=fopen("$datadir/mainforum.dat","a+"); flock ($fp,LOCK_EX); ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА for ($i=0;$i< sizeof($file);$i++) {if ($frd!=$i) {fputs($fp,$file[$i]);} else {fputs($fp,"$txtmf\r\n");}} fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); Header("Location: admin.php"); exit; } if ($_GET['event'] =="rdtema") { // Выбрано редактирование ТЕМЫ $rd=$_POST['rd']; // - номер ячейки, которую необходимо заменить $fid=$_POST['fid']; $changefid=$_POST['changefid']; if (isset($_GET['page'])) {$page=$_GET['page'];} else {$page="0";} $name=$_POST['name']; $who=$_POST['who']; $email=$_POST['email']; $zag=$_POST['zag']; $msg=$_POST['msg']; $datem=$_POST['datem']; $timem=$_POST['timem']; $id=$_POST['id']; $timetk=$_POST['timetk']; $status=$_POST['status']; $goto=$_POST['goto']; if ($goto==1) {$goto="admin.php?fid=$changefid";} else {$goto="admin.php?fid=$fid&page=$page";} if ($zag=="") {exit("$back и введите ТЕМУ, она пустая!");} $text="$name|$who|$email|$zag|$msg|$datem|$timem|$id|$status|$timetk|"; $text=htmlspecialchars($text); $text=stripslashes($text); $text=str_replace("\r\n","
",$text); if ($changefid==$fid) { // Если рубрика остаётся тамже $file=file("$datadir/topic$fid.dat"); $fp=fopen("$datadir/topic$fid.dat","a+"); flock ($fp,LOCK_EX); ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА for ($i=0;$i2) {exit("$back. Попытка взлома. Хакерам здесь не место.");} // защита по топику fid if (!ctype_digit($fid) or strlen($fid)>2) {exit("$back. Попытка взлома. Хакерам здесь не место.");} // проходим по всем разделам и топикам - ищем запращиваемый // на тот случай, если mainforum.dat - пуст, подключаем резервную копию $realbase="1"; if (is_file("$datadir/mainforum.dat")) {$mainlines=file("$datadir/mainforum.dat");} if (!isset($mainlines)) {$datasize=0;} else {$datasize=sizeof($mainlines);} if ($datasize<=0) {if (is_file("$datadir/copy.dat")) {$realbase="0"; $mainlines=file("$datadir/copy.dat"); $datasize=sizeof($mainlines);}} if ($datasize<=0) {exit("$back. Проблемы с Базой данных - обратитесь к администратору");} $i=count($mainlines); $realfid=null; do {$i--; $dt=explode("|", $mainlines[$i]); if ($dt[0]==$fid) {$realfid=$i; if ($dt[1]=="razdel") {exit("$back. Попытка взлома.");}} // присваиваем $realfid - № п/п строки } while($i>0); if (!isset($realfid)) {exit("$back. Ошибка с номером рубрики. Она не существует в базе.");} $dt=explode("|",$mainlines[$realfid]); if (is_file("$datadir/topic$fid.dat")) {$tlines=file("$datadir/topic$fid.dat"); $tc=count($tlines)-2; $i=$tc+2; $ok=null; // нужно пробежаться по топику, найти тему. Если есть - нормуль, нету - значит добавление сообщений ЗАПРЕЩЕНО! if ($_GET['event']=="addanswer") { do {$i--; $tdt=explode("|", $tlines[$i]); if ($tdt[7]==$id) {$ok=1; if ($tdt[8]=="closed") {exit("$back тема закрыта и добавление сообщений запрещено!");} } } while($i>0); if ($ok!=1) {exit("$back тема закрыта и добавление сообщений запрещено!");} } } else {$tc="2";} if ($dt[11]>0) {if ($tc>=$dt[11]) {exit("$back. Превышено ограничение на кол-во допустимых тем в данной рубрике! Не более $dt[11] тем!");}} // проверка Логина/Пароля юзера. Может он хакер, тогда облом ему // Этап 1 if (isset($_COOKIE['wrfcookies'])) { $wrfc=$_COOKIE['wrfcookies']; $wrfc=htmlspecialchars($wrfc); $wrfc=stripslashes($wrfc); $wrfc=explode("|", $wrfc); $wrfname=$wrfc[0]; $wrfpass=$wrfc[1]; } else {$who=""; unset($wrfname); unset($wrfpass);} // Этап 2 if ($who=="да") { if (isset($wrfname) & isset($wrfpass)) { $lines=file("$datadir/usersdat.php"); $i=count($lines); do {$i--; $rdt=explode("|", $lines[$i]); if (isset($rdt[1])) { $realname=strtolower($rdt[0]); if (strtolower($wrfname)===$realname & $wrfpass===$rdt[1]) {$ok="$i";}} } while($i > "1"); if (!isset($ok)) {setcookie("wrfcookies","",time()); exit("Ошибка при работе с КУКИ! Вы не сможете оставить сообщение, попробуйте подать его как гость. Ваш логин и пароль не найдены в базе данных, попробуйте зайти на форум вновь. Если ошибка повторяется - обратитесь к администратору форума.");} }} if (!isset($name) || strlen($name) > $maxname || strlen($name) <1) {exit("$back Ваше ИМЯ пустое, или превышает $maxname символов!");} if (strlen(ltrim($zag))<3 || strlen($zag) > 200) {exit("$back Слишком короткое название темы или название превышает $maxzag символов!");} if (strlen(ltrim($msg))<2 || strlen($msg) > 10000) {exit("$back Ваше сообщение короткое или превышает $maxmsg символов.");} if (!eregi("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$", $email) and strlen($email) > 30 and $email != "") {exit("$back и введите корректный E-mail адрес!");} // генерируем имя файлу с темой if ($_GET['event'] =="addtopic") {$add=null; $z=null; do {$id=mt_rand(1000,9999); if ($fid<10) {$add="0";} if (!is_file("$datadir/$add$fid$id.dat") and strlen($id)==4) {$z++;} } while ($z<1); $id="$add$fid$id";} if ((!ctype_digit($id)) or (strlen($id)>15)) {exit("$back. Попытка взлома. $id должно быть числом. Хакерам здесь не место.");} if (strlen(ltrim($zag))<3) {exit("$back ! Ошибка в вводе данных заголовка!");} $tektime=time(); $name=wordwrap($name,30,' ',1); // разрываем длинные строки $zag==wordwrap($zag,30,' ',1); $msg=wordwrap($msg,110,' ',1); $name=str_replace("|","I",$name); $who=str_replace("|","|",$who); $email=str_replace("|","|",$email); $zag=str_replace("|","|",$zag); $msg=str_replace("|","|",$msg); $smname=$name; if (strlen($name)>18) {$smname=substr($name,0,18); $smname.="..";} $smzag=$zag; if (strlen($zag)>24) {$smzag=substr($zag,0,24); $smzag.="..";} $text="$name|$who|$email|$zag|$msg|$date|$time|$id||$tektime|$smname|$smzag|||"; $text=replacer($text); $exd=explode("|",$text); $name=$exd[0]; $zag=$exd[3]; $smname=$exd[10]; $smzag=$exd[11]; $smmsg=$exd[4]; // функция АНТИФЛУД здесь - повторное добавление сообщения/темы запрещено! if (isset($tlines)) { if ($tc<"-1") {$sdt[0]=null; $sdt[3]=null;} else {$last=$tlines[$tc+1]; $sdt=explode("|",$last);} if ($_GET['event'] =="addtopic") { // ЕСЛИ добавление ТЕМЫ: имя = имя в файле, тема = последняя тема в файле if ($name==$sdt[0] and $exd[3]==$sdt[3]) {exit("$back. Такая тема уже создана. Спамить на форуме запрещено!");} } else { // ЕСЛИ добавление сообщения: имя = имя в файле, сообщение = последнему сообщению в файле if (is_file("$datadir/$id.dat")) {$linesn=file("$datadir/$id.dat"); $in=count($linesn)-1; if ($in > 0) { $dtf=explode("|",$linesn[$in]); if ($name==$dtf[0] and $exd[4]==$dtf[4]) {exit("$back. Такое сообщение уже размещено в данной теме. Спамить на форуме запрещено!");}} } }} // if $event=="addtopic" if(isset($_GET['topicrd'])) { // Выбрано редактирование СООБЩЕНИЯ $topicrd = $_GET['topicrd']; // номер ячейки, которую необходимо заменить $file=file("$datadir/$id.dat"); $fs=count($file)-1; $i="-1"; $timetek=time(); $timefile=filemtime("$datadir/$id.dat"); $timer=$timetek-$timefile; // узнаем сколько прошло времени (в секундах) $fp=fopen("$datadir/$id.dat","a+"); flock ($fp,LOCK_EX); ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА do {$i++; if ($i==$topicrd) {fputs($fp,"$text\r\n");} else {fputs($fp,$file[$i]);} } while($i < $fs); fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); if ($timer<0) {$viptime=strtotime("+2 year"); touch("$datadir/$id.dat",$viptime);} Header("Location: admin.php?fid=$fid&id=$id&page=$page"); exit; } print""; // ЕСЛИ введена команда АП, то меняем дату создания файла и тема самая первая будет if ($_GET['event'] =="addanswer") { //при ОТВЕТе В ТЕМЕ // Проверяем, давно ли реактивировали тему $timetek=time(); $timefile=filemtime("$datadir/$id.dat"); $timer=$timetek-$timefile; // узнаем сколько прошло времени (в секундах) // $timer<10 - 10 секунд защита от антифлуда if ($smmsg=="ап!") { if ($timer<10 and $timer>0) {exit("$back тема была активна менее $timer секунд назад.");} touch("$datadir/$id.dat"); print "
Спасибо, $name, тема реактивирована.

Через несколько секунд Вы будете автоматически перемещены в текущую тему
$zag.

Нажмите здесь, если не хотите больше ждать
"; exit; } if ($timer<10 and $timer>0) {exit("$back тема была активна менее $timer секунд назад.");} } $razdelname=""; if ($realbase=="1" and $maxzd<1) { // Если подключена рабочая база, а не копия $lines=file("$datadir/mainforum.dat"); $dt=explode("|", $lines[$realfid]); $dt[5]++; if ($_GET['event']=="addtopic") {$dt[4]++;} // НЕ менять 4-е строки пусть как написано так и будет! if (!isset($dt[11])) {$dt[11]="100";} $dt[11]=str_replace(" ", "
", $dt[11]); if (!isset($dt[12])) {$dt[12]="";} $dt[12]=str_replace(" ", "
", $dt[12]); $txtdat="$dt[0]|$dt[1]|$dt[2]|$id|$dt[4]|$dt[5]|$smname|$date|$time|$tektime|$smzag|$dt[11]|$dt[12]||"; $razdelname=$dt[1]; // запись данных на главную страницу $fp=fopen("$datadir/mainforum.dat","a+"); flock ($fp,LOCK_EX); ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА for ($i=0;$i<=(sizeof($lines)-1);$i++) {if ($i==$realfid) {fputs($fp,"$txtdat\r\n");} else {fputs($fp,$lines[$i]);}} fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); } // if ($realbase=="1") if ($newmess=="1" and $maxzd<1) { // запись в отдельный файл нового сообщения if (is_file("$datadir/topic$fid.dat")) {$nlines=count(file("$datadir/topic$fid.dat"));} else {$nlines=1;} if (is_file("$datadir/$id.dat")) {$nlines2=count(file("$datadir/$id.dat"))+1;} else {$nlines2=1;} $newmessfile="$datadir/news.dat"; $newlines=file("$newmessfile"); $ni=count($newlines)-1; $i2=0; $newlineexit=""; $nmsg=substr($msg,0,150); // образаем сообщение до 150 символов $ntext="$fid|$id|$date|$time|$smname|$zag|$nmsg...|$nlines|$nlines2|$razdelname|$who||||"; $ntext=str_replace(" ", "
", $ntext); // Блок проверяет, есть ли уже новое сообщение в этой теме. Если есть - отсеивает. На выходе - массив без этой строки. for ($i=0;$i<=$ni;$i++) { $ndt=explode("|",$newlines[$i]); if (isset($ndt[1])) {if ($id!=$ndt[1]) {$newlineexit.="$newlines[$i]"; $i2++;}} } // Записываем свежее сообщение в массив и далее сохраняем его в файл if ($maxzd<1) { // Если тема доступна для всех - нет ограничений по звёздам if ($i2>0) { // Если есть такая тема, то пишем весь массив, иначе тока строку $newlineexit.=$ntext; $fp=fopen("$newmessfile","w"); flock ($fp,LOCK_EX); fputs($fp,"$newlineexit\r\n"); fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); } else { $fp=fopen("$newmessfile","a+"); flock ($fp,LOCK_EX); fputs($fp,"$ntext\r\n"); fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); } $file=file($newmessfile);$i=count($file); if ($i>="15") { $fp=fopen($newmessfile,"w"); flock ($fp,LOCK_EX); unset($file[0]); fputs($fp, implode("",$file)); fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); } } } } // if ($newmess=="1") // БЛОК добавляет +1 к репе и +1 к сообщению или +1 к кол-ву тем, созданных юзером if (isset($_COOKIE['wrfcookies']) and (isset($ok))) { $ufile="$datadir/userstat.dat"; $ulines=file("$ufile"); $ui=count($ulines)-1; $ulinenew=""; // Ищем юзера по имени в файле userstat.dat for ($i=0;$i<=$ui;$i++) {$udt=explode("|",$ulines[$i]); if ($udt[0]==$wrfname) { $udt[3]++; $udt[2]++; if ($_GET['event']=="addtopic") {$udt[1]++;} $ulines[$i]="$udt[0]|$udt[1]|$udt[2]|$udt[3]|$udt[4]|$udt[5]||||\r\n";} $ulinenew.="$ulines[$i]";} // Пишем данные в файл $fp=fopen("$ufile","w"); flock ($fp,LOCK_EX); fputs($fp,"$ulinenew"); fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); } // if isset($ok) if ($_GET['event'] =="addtopic") { // Добавление ТЕМЫ - запись данных // Пишем В ТОПИК $fp=fopen("$datadir/topic$fid.dat","a+"); flock ($fp,LOCK_EX); fputs($fp,"$text\r\n"); fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); // Пишем В ТЕМУ $fp=fopen("$datadir/$id.dat","a+"); flock ($fp,LOCK_EX); fputs($fp,"$text\r\n"); fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); print "
Спасибо, $name, за добавление темы!

Через несколько секунд Вы будете автоматически перемещены в созданную тему.

Нажмите здесь, если не хотите больше ждать
"; exit; } if ($_GET['event'] =="addanswer") { //ОТВЕТ В ТЕМЕ - запись данных $timetek=time(); $timefile=filemtime("$datadir/$id.dat"); $timer=$timetek-$timefile; // узнаем сколько прошло времени (в секундах) $fp=fopen("$datadir/$id.dat","a+"); flock ($fp,LOCK_EX); fputs($fp,"$text\r\n"); fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); if ($timer<0) {$viptime=strtotime("+2 year"); touch("$datadir/$id.dat",$viptime);} $in=$in+2; $page=ceil($in/$qq); // расчитываем верную страницу и номер сообщения print "
Спасибо, $name, Ваш ответ успешно добавлен.

Через несколько секунд Вы будете автоматически перемещены в текущую тему
$zag.

Нажмите здесь, если не хотите больше ждать
"; exit; } // Сделать копию БД if ($_GET['event']=="makecopy") { if (is_file("$datadir/mainforum.dat")) {$lines=file("$datadir/mainforum.dat");} if (!isset($lines)) {$datasize=0;} else {$datasize=sizeof($lines);} if ($datasize<=0) {exit("Проблемы с Базой данных - база повреждена. Размер = 0!");} if (copy("$datadir/mainforum.dat", "$datadir/copy.dat")) {exit("

Копия база данных создана.

$back

");} else {exit("Ошибка создания копии БАЗЫ Данных. Попробуйте создать вручную файл copy.dat в папке $datadir и выставить ему права на ЗАПИСЬ - 666 или полные права 777 и повторите операцию создания копии!");}} // Восстановить из копии БД if ($_GET['event']=="restore") { if (is_file("$datadir/copy.dat")) {$lines=file("$datadir/copy.dat");} if (!isset($lines)) {$datasize=0;} else {$datasize=sizeof($lines);} if ($datasize<=0) {exit("Проблемы с копией базы данных - она повреждена. Восстановление невозможно!");} if (copy("$datadir/copy.dat", "$datadir/mainforum.dat")) {exit("

БД восстановлена из копии.

$back

");} else {exit("Ошибка восстановления из копии БАЗЫ Данных. Попробуйте вручную файлам copy.dat и mainforum.dat в папке $datadir выставить права на ЗАПИСЬ - 666 или полные права 777 и повторите операцию восстановления!");}} // КОНФИГУРИРОВАНИЕ форума, шаг 2: сохранение данных if ($_GET['event']=="config") { // обработка полей пароль админа/модератора if (strlen($_POST['newpassword'])<1 or strlen($_POST['newmoderpass'])<1) {exit("$back разрешается длина пароля МИНИМУМ 1 символ!");} if ($_POST['newpassword']!="скрыт") {$pass=trim($_POST['newpassword']); $_POST['password']=md5("$pass+$skey");} if ($_POST['newmoderpass']!="скрыт") {$pass=trim($_POST['newmoderpass']); $_POST['moderpass']=md5("$pass+$skey");} // защита от дурака. Дожились, уже в админке защиту приходится ставить... $fd=stripslashes($_POST['fdesription']); $fd=str_replace("\\","/",$fd); $fd=str_replace("?>","? >",$fd); $fd=str_replace("\"","'",$fd); $fdesription=str_replace("\r\n","
",$fd); mt_srand(time()+(double)microtime()*1000000); $absrand=mt_rand(1000,9999); // Генерируем случайное число для цифрозащиты $configdata="
Вернитесь назад\"; // Удобная строка\r\n". "$"."s2=\"\"; // Смайлики ;-)\r\n". "$"."s1=\"\";\r\n". "$"."s3=\"\";\r\n". "$"."s4=\"\";\r\n". "$"."s5=\"\";\r\n". "$"."s6=\"\";\r\n". "$"."s7=\"\";\r\n". "$"."s8=\"\";\r\n". "$"."s9=\"\";\r\n". "$"."s10=\"\";\r\n". "$"."s11=\"\";\r\n". "$"."s12=\"\";\r\n". "$"."date=date(\"d.m.Y\"); // число.месяц.год\r\n". "$"."time=date(\"H:i:s\"); // часы:минуты:секунды\r\n?>"; $file=file("config.php"); $fp=fopen("config.php","a+"); flock ($fp,LOCK_EX); ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА fputs($fp,$configdata); fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); Header("Location: admin.php?event=configure"); exit;} } // конец if isset($event) // шапка для всех страниц форума if (isset($_COOKIE['wrfcookies'])) { $wrfc=$_COOKIE['wrfcookies']; $wrfc = explode("|", $wrfc); $wrfname=$wrfc[0];$wrfpass=$wrfc[1];$wrftime1=$wrfc[2];$wrftime2=$wrfc[3]; if (time()>($wrftime1+50)) { $tektime=time(); $wrfcookies="$wrfc[0]|$wrfc[1]|$tektime|$wrftime1|"; setcookie("wrfcookies", $wrfcookies, time()+1728000); $wrfc=$_COOKIE['wrfcookies']; $wrfc = explode("|", $wrfc); $wrfname=$wrfc[0];$wrfpass=$wrfc[1];$wrftime1=$wrfc[2];$wrftime2=$wrfc[3]; }} if (is_file("$datadir/mainforum.dat")) {$mainlines=file("$datadir/mainforum.dat");} if (!isset($mainlines)) {$datasize=0;} else {$datasize=sizeof($mainlines);} if ($datasize<=0) {if (is_file("$datadir/copy.dat")) {$mainlines=file("$datadir/copy.dat"); $datasize=sizeof($mainlines);}} if ($datasize<=0) {exit("

Файл РУБРИК несуществует! создайте рубрики!

");} // Блок выводит в статусной строке: ТЕМА -> РАЗДЕЛ -> ФОРУМ if (isset($_GET['fid'])) { $fid=$_GET['fid']; if (!ctype_digit($fid) or strlen($fid)>2) {exit("$back. Попытка взлома. Хакерам здесь не место.");} $imax=count($mainlines); $i=count($mainlines); // проходим по всем разделам и топикам - ищем запращиваемый $raz=""; $rfid=""; $frname=""; do {$i--; $dt=explode("|", $mainlines[$i]); if ($dt[0]==$fid) {$rfid=$i; $raz="$dt[1]"; $frname="$dt[1]"; if (isset($dt[11])) { if($dt[11]>0) {$maxtem=$dt[11];} else {$maxtem="100";}}} } while($i >0); if (isset($_GET['id'])) { $id=$_GET['id']; if (!ctype_digit($id) or strlen($id)>15) {exit("$back. Попытка взлома. Хакерам здесь не место.");} if (is_file("$datadir/$id.dat")) { $lines=file("$datadir/$id.dat"); if (count($lines)>4) {$dtt=explode("|",$lines[0]); $frtname=$dtt[3];} else {$frtname="";} $ft=$frname; $frname="-> $ft ->";} else {$frtname=""; $frname="";}} else {$frtname=""; $frname.="->";} } else {$frname=""; $frtname="";} // Админ или модер - задаём переменные ,которые потом будем использовать $ktotut=""; if ($gbname==$adminname[0]) {$ktotut="1";} else {$ktotut="2";} // печатаем ВЕРХУШКУ форума если есть файл ?> Админка :: <?print"$frtname $frname $fname";?> "> "> '; // определяем тип: форум или заголовок if ($dt[1]=="razdel") {print "";} else { if (is_file("$datadir/$dt[3].dat")) { $msgsize=sizeof(file("$datadir/$dt[3].dat")); // считаем кол-во страниц в файле if ($msgsize>$qq) {$page=ceil($msgsize/$qq);} else {$page=1;}} else {$page=1;} if ($dt[7]==$date) {$dt[7]="сегодня";} $maxzvezd=null; if (isset($dt[12])) { if ($dt[12]>0) {$maxzvezd="*Доступна участникам, имеющим $dt[12] звезд"; $dt[4]=""; $dt[5]=""; if ($dt[12]==1) {$maxzvezd.="у";} if ($dt[12]==2 or $dt[12]==3 or $dt[12]==4) {$maxzvezd.="ы";} $maxzvezd.=" минимум";}} print " "; $itogotem=$itogotem+$dt[4]; $itogomsg=$itogomsg+$dt[5]; } } while($a1 < $u); echo'
<br />
<b>Notice</b>:  Undefined variable: fname in <b>/var/www/bez-ssoru/htdocs/projects/forum/admin.php</b> on line <b>1240</b><br />
Вы вошли как

Панель администрирования

Notice: Undefined variable: fname in /var/www/bez-ssoru/htdocs/projects/forum/admin.php on line 1242


Notice: Undefined variable: fdesription in /var/www/bez-ssoru/htdocs/projects/forum/admin.php on line 1243


Сделать копию БД Восстановить из копии Участники Пересчитать Пересчитать статистику участников Настройки";} print"ПоискВыход из админки"; // читаем файл с именами пользователей в память чтобы показать последнего $userlines=file("$datadir/usersdat.php"); $ui=count($userlines)-1; $tdt = explode("|", $userlines[$ui]); if (is_file("$datadir/copy.dat")) { if (count(file("$datadir/copy.dat"))<1) {$a2="НО файл копии ПУСТ! Срочно пересоздайте!
(смотрите права доступа, если эо сообщение повторяется)";} else {$a2="";} $a1=round((mktime()-filemtime("$datadir/copy.dat"))/86400); if ($a1<1) $a1="сегодня, это есть гуд!"; else $a1.=" дней назад."; $add="
Копия была создана ".$a1." $a2"; if ($a1>90) $add.="Да уж, больше 3-х месяцев ниодной копии не делали. Испытываете судьбу? Делайте БЕГОМ!"; if ($a1>10) $add.="Вы что! СРОЧНО делайте копию! А вдруг сбой? Как будете данные восстанавливать?!!"; if ($a1>5) $add.="Пора делать копию. Берегите свои нервы. Чтобы быть спокойным при сбое ;-)"; $add.="
";} else {$add="";} print"
$add
Сегодня: $date - $time
"; // выводим ГЛАВНУЮ СТРАНИЦУ ФОРУМА if (!isset($_GET['event'])) { if (!isset($_GET['fid'])) { echo' '; // Выводим qq сообщений на текущей странице $addform="
Форумы Тем Ответов Обновление
Добавление Раздела / Форума
Тип добавляемого пункта Раздел    Форум
Заголовок
Описание
"; if (!is_file("$datadir/mainforum.dat")) {exit("

Восстановите БД из копии. Файл mainforum.dat несуществует или добавьте форум/раздел.

$addform");} $lines = file("$datadir/mainforum.dat"); $datasize = sizeof($lines); if ($datasize==0) {exit("

Файл mainforum.dat пуст - добавьте форум или раздел.

$addform");} $i=count($lines); $n="0"; $a1="-1"; $u=$i-1; $fid="0"; $itogotem="0"; $itogomsg="0"; do {$a1++; $dt = explode("|", $lines[$a1]); $fid=$dt[0]; echo'
 '; if ($ktotut==1) { // только админ может управлять разделами print"
Вв Нз .P. .X.
"; } echo'
$dt[2]
 
$dt[1] $maxzvezd
$dt[2]
$dt[4] / $dt[11] $dt[5] тема: $dt[10]
автор: $dt[6]
дата: $dt[7] - $dt[8]

'; // Выбрано редактирование ФОРУМА if (isset($_GET['frd'])) { if ($_GET['frd'] !="") { $frd=$_GET['frd']; $lines = file("$datadir/mainforum.dat"); $dt = explode("|", $lines[$frd]); if (isset($dt[11])) { if ($dt[11]>0) {$addmax=$dt[11];} else {$addmax="100";}} if (isset($dt[12])) { if ($dt[12]<=0) {$dt[12]="0";}} $dt[2]=str_replace("
","\r\n",$dt[2]); print "
";} else {print " Форум";} print"
Редактирование Раздела / Форума
Тип редактируемого пункта"; if ($dt[1]=="razdel") {print "Раздел
Заголовок
Заголовок
Описание
Максимальное кол-во тем в форуме
Заблокировать по звёздам (ТОЛЬКО участники с указанным кол-вом звёзд могут обсуждать этот форум)

"; } } // Конец редактирования ФОРУМА else { if ($ktotut==1) {print "$addform";} } if ($statistika=="1") { print"
Статистика
Сообщений: $itogomsg
Тем: $itogotem
Всего зарегистрировано участников: $ui
Последним зарегистрировался: $tdt[0]
"; // СТАТИСТИКА -= Последние сообщения с форума =- if (is_file("$datadir/news.dat")) { $newmessfile="$datadir/news.dat"; $lines=file($newmessfile); $i=count($lines); //if ($i>10) $i=10; (РАСКОМЕНТИРУЙ - ВОТ ГДЕ СИЛА!!! ;-)) if ($i>1) { print"
Последние сообщения
"; $a1=$i-1;$u="-1"; // выводим данные по возрастанию или убыванию do {$dt=explode("|", $lines[$a1]); $a1--; if (isset($dt[1])) { // Если строчка потерялась в скрипте (пустая строка) - то просто её НЕ выводим $dt[6]=str_replace("[b] "," ",$dt[6]); $dt[6]=str_replace("[/b]"," ",$dt[6]); $dt[6]=str_replace("[RB] "," ",$dt[6]); $dt[6]=str_replace("[/RB]"," ",$dt[6]); $dt[6]=str_replace("[Code] "," ",$dt[6]); $dt[6]=str_replace("[/Code]"," ",$dt[6]); $dt[6]=str_replace("[Quote] "," ",$dt[6]); $dt[6]=str_replace("[/Quote]"," ",$dt[6]); $dt[6]=str_replace("
","\r\n", $dt[6]); $dt[2]=str_replace(".200",".0", $dt[2]); $dt[2]=substr($dt[2],0,8); $dt[3]=substr($dt[3],0,5); if ($dt[8]>$qq) {$page=ceil($dt[8]/$qq);} else {$page=1;} // Считаем страницу if ($dt[10]=="да") {$codename=urlencode($dt[4]); $name="$dt[4]";} else {$name="гость $dt[4]";} print"$dt[2] - $dt[3]: $dt[9] -> $dt[5] - $name.
"; } // если строчка потерялась $a11=$u; $u11=$a1; } while($a11 < $u11); echo'
';} } // Конец блока последних сообщений } } // конец главной страницы // выводим страницу С ТЕМАМИ выбранной РУБРИКИ if (isset($_GET['fid']) and !isset($_GET['id'])) { $fid=$_GET['fid']; $maxzd=null; // Уточняем статус по кол-ву ЗВЁЗД в теме do {$imax--; $ddt=explode("|", $mainlines[$imax]); if ($ddt[0]==$fid) {$maxzd=$ddt[12];} } while($imax>"0"); if (!ctype_digit($maxzd)) {$maxzd=0;} print "
   $fname -> $frname
"; $addbutton="
X/P Тема Cообщений Автор Обновления
"; // определяем есть ли информация в файле с данными if (is_file("$datadir/topic$fid.dat")) { $msglines=file("$datadir/topic$fid.dat"); if (count($msglines)>0) { if (count($msglines)>$maxtem-1) {$addbutton="
 
"; } //if (is_file) } while($lm < $fm); // выводим СПИСОК СТРАНИЦ $lines=file("$datadir/topic$fid.dat"); $maxi=count($lines)-1; $maxpage=ceil(($maxi+1)/$qq); if ($page>$maxpage) {$page=$maxpage;} print "
Количество допустимых тем в рубрике исчерпано.";} // Выводим qqmain сообщений на текущей странице $lines=file("$datadir/topic$fid.dat"); $i=count($lines); $maxi=count($lines)-1; $n="0"; // Исключаем ошибку вызова несуществующей страницы if (!isset($_GET['page'])) {$page=1;} else {$page=$_GET['page']; if (!ctype_digit($page)) {$page=1;} if ($page<1) $page=1;} // Показываем QQ ТЕМ $fm=$maxi-$qq*($page-1); if ($fm<"0") {$fm=$qq;} $lm=$fm-$qq; if ($lm<"0") {$lm="-1";} $timetek=time(); do {$dt=explode("|", $lines[$fm]); // нужно для определения темы на VIP-статус if (is_file("$datadir/$dt[7].dat")) {$ftime=filemtime("$datadir/$dt[7].dat");} else {$ftime="";} $timer=$timetek-$ftime; // узнаем сколько прошло времени (в секундах) $fm--; $num=$fm+2; $numid=$fm+1; $filename=$dt[7]; if (is_file("$datadir/$filename.dat")) { // если файл с темой существует - то показать тему $msgsize=sizeof(file("$datadir/$filename.dat")); // --------- Выделяем новые сообщения $linetmp=file("$datadir/$filename.dat"); if (sizeof($linetmp)!=0) { $pos=$msgsize-1; $dtt=explode("|", $linetmp[$pos]); $foldicon="folder.gif"; // Если последнее сообщение в форуме произошло раньше посещения - значит раздел форума - новый if (isset($wrfname)) {if (isset($dtt[9])) {if ($dtt[9]>$wrftime2) {$foldicon="foldernew.gif";}}} if (strlen($dt[8])>1 and $dt[8]=="closed") {if ($msgsize<"20") {$foldicon="close.gif";} else {$foldicon="closed.gif";}}} else {$foldicon="foldernew.gif";} // --------- Конец print "
.P.
.X.
"; if ($timer<0) {echo'VIP ';} print"$dt[3]"; if ($msgsize>$qq) { // выводим список доступных страниц echo'
     Страницы: '; // Считаем и отображаем страницы в темах $maxit=count($linetmp)-1; $maxpaget=ceil(($maxit+1)/$qq); if ($maxpaget<=5) {$f1=$maxpaget;} else {$f1=5;} for($i=1; $i<=$f1; $i++) {print "$i  ";} if ($maxpaget>5) print "... $maxpaget"; echo''; } print"
$msgsize "; $codename=urlencode($dt[0]); if ($dt[1]=="да") {print "$dt[0]
$users";} else {print"$dt[0]
$guest";} if ($msgsize>=2) {$linesdat=file("$datadir/$filename.dat"); $dtdat=explode("|", $linesdat[$msgsize-1]); if (strlen($linesdat[$msgsize-1])>10) {$dt[0]=$dtdat[0]; $dt[1]=$dtdat[1]; $dt[2]=$dtdat[2]; $dt[5]=$dtdat[5]; $dt[6]=$dtdat[6];}} // защита if (strlen...) только если файл есть и имеет верный формат - выводим $dt[6]=substr($dt[6],0,-3); if ($dt[5]===$date) {$dt[5]="сегодня";} print "
  автор: $dt[0]
  дата: $dt[5]
  время: $dt[6]
Страницы:  "; if ($page>=4 and $maxpage>5) print "1 ... "; $f1=$page+2; $f2=$page-2; if ($page<=2) {$f1=5; $f2=1;} if ($page>=$maxpage-1) {$f1=$maxpage; $f2=$page-3;} if ($maxpage<=5) {$f1=$maxpage; $f2=1;} for($i=$f2; $i<=$f1; $i++) {if ($page==$i) {print "$i  ";} else {print "$i  ";}} if ($page<=$maxpage-3 and $maxpage>5) print "... $maxpage"; echo'
'; }} // ------------ Выбрано редактирование ТЕМЫ if (isset($_GET['rd'])) { if ($_GET['rd'] !="") { $rd=$_GET['rd']; $dt=explode("|", $lines[$rd]); $moddate=filemtime("$datadir/$dt[7].dat"); $tektime=mktime(); if ($moddate<$tektime) {$vt1="checked"; $vt2="";} else {$vt2="checked"; $vt1="";} if ($dt[8]=="closed") {$ct2="checked"; $ct1="";} else {$ct1="checked"; $ct2="";} print "
Редактирование Темы
Название темы открыта   закрыта
Переместить в другой раздел ? обычная тема   VIP-тема
После переноса вернуться в какой раздел ? в текущую рубрику    туда куда переносим тему
"; } } else { print "
Добавление темы
"; if (!isset($wrfname)) {echo'Имя и E-mail
';} print "Заголовок темы
Сообщение
"; if (isset($wrfname)) {print "";} else {print "
";} print "



"; } // -------------- } } // выводим СООБЩЕНИЕ в текущей теме if (isset($_GET['fid']) and isset($_GET['id'])) {$id=$_GET['id']; $fid=$_GET['fid']; // определяем есть ли информация в файле с данными if (!is_file("$datadir/$id.dat")) {exit("

$back. Извините, но такой темы на форуме не существует.
Скорее всего её удалил администратор.");} $lines=file("$datadir/$id.dat"); $mitogo=count($lines); $i=$mitogo; $maxi=$i-1; if ($mitogo>0) { $tblstyle="row1"; // Считываем СТАТИСТИКУ ВСЕХ УЧАСТНИКОВ if (is_file("$datadir/userstat.dat")) {$ufile="$datadir/userstat.dat"; $ulines=file("$ufile"); $ui=count($ulines)-1;} // Ищем тему в topicХХ.dat - проверяем не закрыта ли тема? $msglines=file("$datadir/topic$fid.dat"); $mg=count($msglines); $closed="no"; do {$mg--; $mt=explode("|",$msglines[$mg]); if ($mt[7]==$id and $mt[8]=="closed") {$closed="yes";} } while($mg > "0"); $maxzd=null; // Уточняем статус по кол-ву ЗВЁЗД в теме do {$imax--; $ddt=explode("|", $mainlines[$imax]); if ($ddt[0]==$fid) {$maxzd=$ddt[12];} } while($imax>"0"); if (!ctype_digit($maxzd)) {$maxzd=0;} // Исключаем ошибку вызова несуществующей страницы if (!isset($_GET['page'])) {$page=1;} else {$page=$_GET['page']; if (!ctype_digit($page)) {$page=1;} if ($page<1) $page=1;} $fm=$qq*($page-1); if ($fm>$maxi) {$fm=$maxi-$qq;} $lm=$fm+$qq; if ($lm>$maxi) {$lm=$maxi+1;} do {$dt=explode("|", $lines[$fm]); $fm++; $num=$maxi-$fm+2; $status=""; unset($youwr); if (strlen($lines[$fm-1])>5) { // Если строчка потерялась в скрипте (пустая строка) - то просто её НЕ выводим $dt[4]=str_replace("[b]","", $dt[4]); $dt[4]=str_replace("[/b]","", $dt[4]); $dt[4]=str_replace("[RB]","", $dt[4]); $dt[4]=str_replace("[/RB]","", $dt[4]); $dt[4]=str_replace("[Quote]","
Цитата:", $dt[4]); $dt[4]=str_replace("[/Quote]","

", $dt[4]); $dt[4]=str_replace("[Code]","
Код:", $dt[4]); $dt[4]=str_replace("[/Code]","

", $dt[4]); $dt[4]=str_replace(":-))",$s2,$dt[4]); $dt[4]=str_replace(":-)",$s1,$dt[4]); $dt[4]=str_replace(":-P",$s3,$dt[4]); $dt[4]=str_replace("8-)",$s4,$dt[4]); $dt[4]=str_replace(":-((",$s5,$dt[4]); $dt[4]=str_replace(":-(",$s12,$dt[4]); $dt[4]=str_replace(":-O",$s6,$dt[4]); $dt[4]=str_replace(";-)",$s7,$dt[4]); $dt[4]=str_replace(":roll:",$s8,$dt[4]); $dt[4]=str_replace(":rf:",$s9,$dt[4]); $dt[4]=str_replace("8-(",$s10,$dt[4]); $dt[4]=str_replace("`-(",$s11,$dt[4]); $dt[4]=str_replace("&#124;","|",$dt[4]); $dt[4]=eregi_replace("((https?|ftp)://[[:alnum:]_=/-]+(\\.[[:alnum:]_=/-]+)*(/[[:alnum:]+&._=/~%]*(\\?[[:alnum:]?+&;_=/%]*)?)?)", "\\1", $dt[4]); $dt[4]=eregi_replace("\\[img\\]\\((https?|ftp)://[[:alnum:]_=/-]+(\\.[[:alnum:]_=/-]+)*(/[[:alnum:]+&._=/%]*(\\?[[:alnum:]?+&_=/%]*)?)?)\\[/img\\]", "\\1", $dt[4]); // считываем в память данные по пользователю if ($dt[1]=="да") { $userlines=file("$datadir/usersdat.php"); $usercount=count($userlines); $ui=$usercount-1; $iu=$usercount; do {$iu--; $du=explode("|", $userlines[$iu]); if ($du[0]==$dt[0]) { if (isset($du[12])) {$status=$du[13]; $reiting=$du[2]; $youavatar=$du[12]; $email=$du[3]; $icq=$du[7]; $site=$du[8]; $userpn=$iu;} $youwr=eregi_replace("((https?|ftp)://[[:alnum:]_=/-]+(\\.[[:alnum:]_=/-]+)*(/[[:alnum:]+&._=/%]*(\\?[[:alnum:]?+&;_=/%]*)?)?)", "\\1", $du[11]);} } while($iu > "0"); } if ($tblstyle=="row1") {$tblstyle="row2";} else {$tblstyle="row1";} if (!isset($m1)) { print "
   $fname $frname $dt[3]
"; print""; $m1="1"; } print""; } // если строчка потерялась } while($fm < $lm); echo'
Автор Сообщение

"; // Проверяем: это гость? if (!isset($youwr)) {if (strlen($dt[2])>5) {print "$dt[0] ";} else {print"$dt[0] ";} $kuda=$fm-1; print" ".chr(149)."

ЛС

$guest";} else { $codename=urlencode($dt[0]); print "$dt[0] ".chr(149)."

"; if (strlen($status)>2 & $dt[1]=="да" & isset($youwr)) {print "$status";} else {print"$users";} if (isset($reiting)) {if ($reiting>0) {echo'
'; if (is_file("$fskin/star.gif")) {for ($ri=0;$ri<$reiting;$ri++) {print"";} } }} if (isset($youavatar)) { if (is_file("avatars/$youavatar")) {$avpr="$youavatar";} else {$avpr="noavatar.gif";} print "


";} } // isset($youwr) if (isset($youwr) and is_file("$datadir/userstat.dat")) { // ТОЛЬКО участники видят всю репутацию! ;-) if (isset($ulines[$userpn])) { if (strlen($ulines[$userpn])>5) { $ddu=explode("|",$ulines[$userpn]); print"

Тем создано: $ddu[1]
Сообщений: $ddu[2]
Репутация: $ddu[3] -+
Предупреждения: $ddu[4]
"; }}} print "
$dt[4]"; if (isset($youwr)) {if (strlen($youwr)>3) {print "
--------------------------------------------------
$youwr";}} // печатаем подпись участника print"
.P..X.
Сообщение # $fm.
Отправлено: $dt[5] - $dt[6]
'; // выводим СПИСОК СТРАНИЦ $maxpage=ceil(($maxi+1)/$qq); if ($page>$maxpage) {$page=$maxpage;} echo'
Страницы:  '; if ($page>=4 and $maxpage>5) print "1 ... "; $f1=$page+2; $f2=$page-2; if ($page<=2) {$f1=5; $f2=1;} if ($page>=$maxpage-1) {$f1=$maxpage; $f2=$page-3;} if ($maxpage<=5) {$f1=$maxpage; $f2=1;} for($i=$f2; $i<=$f1; $i++) {if ($page==$i) {print "$i  ";} else {print "$i  ";}} if ($page<=$maxpage-3 and $maxpage>5) print "... $maxpage"; echo'
'; // Выбрана метка .P. - редактирование сообщения if (isset($_GET['topicrd'])) { // выводим сообщение в форму $topicrd=$_GET['topicrd']-1; $lines=file("$datadir/$id.dat"); $dt=explode("|", $lines[$topicrd]); $dt[4]=str_replace("
", "\r\n", $dt[4]); print "
Сообщение
Имя   E-mail "; } else { print "
Сообщение
Имя "; if (!isset($wrfname)) {echo'и E-mail
';} echo'
'; if (!isset($wrfname)) {echo' ';} else {print "$wrfname";} } print "
Сообщение

Для вставки имени, кликните на точку рядом с ним.

Смайлики:
$s1 $s2 $s3 $s4 $s5 $s6 $s7 $s8 $s12 $s9 $s10 $s11
Ещё смайлы
"; if (isset($_GET['topicrd'])) { print "
         
   
"; } else { echo'
    ';}} } // else if event !="" if (isset($_GET['event'])) { // КОНФИГУРИРОВАНИЕ форума - выбор настроек if ($_GET['event']=="configure") { if ($ktotut!=1) {exit("$back! Модераторам запрещено изменять настройки форума! Если нужно сменить пароль - обращайтесь к админу!");} if ($sendmail=="1") {$s1="checked"; $s2="";} else {$s2="checked"; $s1="";} if ($sendadmin=="1") {$sa1="checked"; $sa2="";} else {$sa2="checked"; $sa1="";} if ($statistika=="1") {$st1="checked"; $st2="";} else {$st2="checked"; $st1="";} if ($antispam=="1") {$as1="checked"; $as2="";} else {$as2="checked"; $as1="";} if ($newmess=="1") {$n1="checked"; $n2="";} else {$n2="checked"; $n1="";} if ($cangutema=="1") {$ct1="checked"; $ct2="";} else {$ct2="checked"; $ct1="";} if ($cangumsg=="1") {$cm1="checked"; $cm2="";} else {$cm2="checked"; $cm1="";} if ($useactkey=="1") {$u1="checked"; $u2="";} else {$u2="checked"; $u1="";} if ($liteurl=="1") {$lu1="checked"; $lu2="";} else {$lu2="checked"; $lu1="";} print "
Конфигурирование
Параметр Значение
Название форума
Описание
не рекомендую использовать HTML-теги.
Е-майл администратора
Пароль админа * (зашифрован и скрыт)
Пароль модератора * (зашифрован и скрыт)
Включить отправку сообщений? да   нет
Мылить админу сообщения и вновь зарегистрированных пользователей? да   нет
Показывать статистику на главной странице? да   нет
Создавать файл с новыми сообщениями? да   нет
Макс. длина имени
Макс. длина заголовка темы
Макс. длина сообщения
Задействовать АНТИСПАМ / длина кода да   нет    .:.    (от 1 до 9) цифр
Тем / Cообщений / Участников на страницу   .:.     .:.  
Как называть участников НЕ зареганых / зареганых  /  
Требовать активации через емайл при регистрации? да   нет
Создавать темы / Оставлять сообщения гостям можно?Т: да   нет .:. С: да   нет
Делать ссылки в тексте активными? да   нет
Папка с данными форума    По умолчанию - ./data
Максимальный размер аватара в байтах
Скин форума


* Если хотите изменить пароль - сотрите слово "скрыт" и введите новый пароль.
Рекомендую использовать только буквы и/или цифры.'; } // ПРОСМОТР ВСЕХ УЧАСТНИКОВ форума if ($_GET['event']=="userwho") { $t1="row1"; $t2="row2"; $error=0; $userlines=file("$datadir/usersdat.php"); $ui=count($userlines)-1; $statlines=file("$datadir/userstat.dat"); $si=count($statlines)-1; $bada="
В файле статистики имеются ошибки! ПЕРЕСЧИТАЙТЕ статистику участников!!!

"; if ($si!=$ui) {print"$bada";} echo''; if (isset($_GET['page'])) {$page=$_GET['page'];} else {$page="1";} if (!ctype_digit($page)) {$page=1;} // защита if ($page=="0") {$page="1";} else {$page=abs($page);} $maxpage=ceil(($ui+1)/$uq); if ($page>$maxpage) {$page=$maxpage;} $i=1+$uq*($page-1); if ($i>$ui) {$i=$ui-$uq;} $lm=$i+$uq; if ($lm>$ui) {$lm=$ui+1;} do {$tdt=explode("|",$userlines[$i]); $i++; $npp=$i-1; if (isset($statlines[$i-1])) {$sdt=explode("|",$statlines[$i-1]);} else {$sdt[0]=""; $sdt[1]="-"; $sdt[2]="-"; $sdt[3]="-"; $sdt[4]="-";} // Проверяем, если файл статистики повреждён - пишем сообщение о необходимости восстановить его if ($sdt[0]!=$tdt[0]) {$error++; $sdt[1]="-"; $sdt[2]="-"; $sdt[3]="-"; $sdt[4]="-";} if ($tdt[6]=="мужчина") {$tdt[6]="М";} else {$tdt[6]="Ж";} if (strlen($tdt[13])<2) {$tdt[13]=$users;} print""; if (strlen($tdt[13])=="6" and ctype_digit($tdt[13])) { print"";} $t3=$t2; $t2=$t1; $t1=$t3; } while ($i<$lm); // выводим СПИСОК СТРАНИЦ if ($page>$maxpage) {$page=$maxpage;} echo'
.X. Имя Пол зарегис- трирован Емайл Тем Сообщений Репутация Штрафы Статус / Изменить Рейтинг
$npp
.X.
$tdt[0][Активировать]. Учётная запись не активирована с $tdt[4]. (емайл: $tdt[3] ключ: $tdt[13])"; } else { //ИМЯ_ЮЗЕРА|Тем|Сообщений|Репутация|Предупреждения Х/5|Когда последний раз меняли рейтинг в UNIX формате||| print"$tdt[6]$tdt[4]$tdt[3] $sdt[1] $sdt[2]
  $sdt[4] 

Страницы:  '; if ($page>=4 and $maxpage>5) print "1 ... "; $f1=$page+2; $f2=$page-2; if ($page<=2) {$f1=5; $f2=1;} if ($page>=$maxpage-1) {$f1=$maxpage; $f2=$page-3;} if ($maxpage<=5) {$f1=$maxpage; $f2=1;} for($i=$f2; $i<=$f1; $i++) {if ($page==$i) {print "$i  ";} else {print "$i  ";}} if ($page<=$maxpage-3 and $maxpage>5) print "... $maxpage"; print "Всего зарегистрировано участников - $ui

"; if ($error>0) {print"$bada";} echo'* Тем - Скрипт считает кол-во тем, созданных участником с момента регистрации/восстановления файла статистики после сбоя

Сообщений - сколько участник оставил сообщений

Репутация - "Авторитетность" пользователя. Максимум 9999 ед. Автоматически увеличивается на 1 при добавлении сообщения/темы

Система штрафов ещё отлаживается. Будет доступна в следующей версии!!! - ШТРАФЫ:
0 - юзер может всё;
1 - юзеру антифлуд увеличиваем до 60 секунд;
2 - юзер не имеет права менять репу другим;
3 - юзеру запрещаем создавать темы;
4 - блокируем доступ к ответу в темах - только просмотр;
5 - БАН на 1 месяц!


'; } } //} else {print"$back. Ошибочка вышла... :-(";} //} // авторизация НЕ пройдена ?>
Powered by WR-Forum © 1.8 eXclusive