Просмотр файла forum/new_topik.php

Размер файла: 10.8Kb
<?php
include("../sistem/cfg.dat");
include("../sistem/cfg_forum.dat");
include("../sistem/global.dat");
include("../temes/$teme/verh.dat");

if($status=="uzer" || $status=="moder" || $status=="admin")
{
  
   
   echo'<div class="razd"><B>Форум</B></div>';
   
   if(isset($_POST['r'])){$r = $_POST['r'];}
   if(isset($_POST['t'])){$t = $_POST['t'];}
   $r=htmlspecialchars($r);
   $t=htmlspecialchars($t);
   
   if(eregi("[^0-9]" , $r )){echo'запрещённые символы<br>';}else
   {
      if (eregi("[^0-9]" , $t )){ echo'запрещённые символы<br>'; }else
      {
         if(file_exists("../data/forum/temes-$r.dat") && file_exists("../data/forum/topik-$t.dat"))//проверили существование раздела или темы
         {
            //echo'<div class="razd"><B>Новое сообщение</B></div>';
            
            //получаем параметры темы
            $str = file("../data/forum/temes-$r.dat");
            $nom=count($str);
            $d='-1';
            $var=$nom-1;
            while(++$d <= $var)
            {
               $as=explode("<||>",$str[$d]);
               if($as[4] == $t)
               {
                  $stats_teme = $as[0];//запомнили статус темы
               }
            }
            //закончили получать параметры темы
            
            if($stats_teme == "activ" || $stats_teme == "zacrep")
            {
               if(isset($_POST['txtsob'])){$txtsob = $_POST['txtsob'];}
               if($txtsob)
               {
                  if("1000" >= strlen($txtsob))
                  {
                     //Убираем ненужное
                     $txtsob=htmlspecialchars($txtsob);
                     $login =str_replace("\r","",$login);
                     $login =str_replace("\n","",$login);
                     $txtsob =str_replace("\r","",$txtsob);
                     $txtsob =str_replace("\n","<br>",$txtsob);
                     //вставляем смайлы
                     include("../sistem/smiles.dat");//обработали смайлами и bb кодами
                     
                     
                     $txtsob=stripslashes($txtsob);//функция убираний слешей, обрабатывать только в последнюю очередь
                     
                     //увеличиваем счетчик постов всего форума
                     $nomer_post=file("../data/forum/count_post.dat");
                     ++$nomer_post[0];
                     $file_count_post = fopen("../data/forum/count_post.dat", "w+");//если всё правильно, то сохраняем счетчик
                     flock ($file_count_post,LOCK_EX);
                     fputs($file_count_post,$nomer_post[0]);//если всё правильно, то сохраняем счетчик
                     flock ($file_count_post,LOCK_UN);
                     fclose($file_count_post);//если всё правильно, то сохраняем счетчик
                     @chmod("../data/forum/count_post.dat", 0666);
                     
                     //записываем пост
                     $time_post = htmlspecialchars(date("d.m.y H:i:s"));
                     $kod2=''.$login.'<||>'.$time_post.'<||>'.$txtsob.'<||>';//В хранилище постов
                     $file_post_data = fopen("../data/forum/topik-$t.dat", "a+");//записываем пост
                     flock ($file_post_data,LOCK_EX);
                     fputs($file_post_data,$kod2."\r\n");
                     flock ($file_post_data,LOCK_UN);
                     fclose($file_post_data);
                     @chmod("../data/forum/topik-$t.dat", 0666);
                     
                     
                     
                     
                     //увеличиваем счет постов у юзера
                     $pass_real = htmlspecialchars($pass_real);
                     ++$postov;
                     $kod=''.$pass_real.'<||>'.$status.'<||>'.$postov.'<||>'.$golos_za.'<||>'.$golos_protiv.'<||>'.$prichina_bana.'<||>'.$time_reg.'<||>'.$den_plusa.'<||>'.$real_name.'<||>'.$real_name2.'<||>'.$gorod.'<||>'.$a_baut.'<||>'.$vozrost.'<||>'.$pol.'<||>'.$ip.'<||>'.$posled_time_pribivanij.'<||>'.$posled_time.'<||>'.$my_tema.'<||>'.$rezerv1.'<||>'.$rezerv2.'<||>'.$rezerv3.'<||>'.$rezerv4.'<||>'.$rezerv5.'<||>'.$rezerv6.'<||>'.$rezerv7.'<||>'.$rezerv8.'<||>'.$rezerv9.'<||>'.$rezerv10.'<||>'.$rezerv11.'<||>'.$rezerv12.'<||>'.$rezerv13.'<||>'.$rezerv14.'<||>'.$rezerv15.'<||>'.$rezerv16.'<||>'.$rezerv17.'<||>'.$rezerv18.'<||>'.$rezerv19.'<||>'.$rezerv20.'<||>';
                     $file_login_data = fopen("$koren_dir/data/uzer/$login.dat", "w+");
                     flock ($file_login_data,LOCK_EX);
                     fputs($file_login_data,$kod);
                     flock ($file_login_data,LOCK_UN);
                     fclose($file_login_data);
                     @chmod("$koren_dir/data/uzer/$login.dat", 0666);
                     //закончили увеличиваем счет постов у юзера
                     
                     
                     //изменяем счётчик в списке тем
                     $i='-1';
                     $var=$nom;
                     $filelinck = fopen("../data/forum/temes-$r.dat", "w+");
                     flock ($filelinck,LOCK_EX);
                     while(++$i < $var)
                     {
                        $as=explode("<||>",$str[$i]);
                        if($as[4] != $t)
                        {
                           fputs($filelinck,$str[$i]);
                        }else
                        {
                           ++$as[5];
                           $str_new= ''.$as[0].'<||>'.$time_post.'<||>'.$login.'<||>'.$as[3].'<||>'.$as[4].'<||>'.$as[5].'<||>
';
                           $nazv_teme = $as[3];//для записи в список популярных тем
                        }
                     }
                     fputs($filelinck,$str_new);
                     flock ($filelinck,LOCK_UN);
                     fclose($filelinck);
                     @chmod("../data/forum/temes-$r.dat", 0666);
                     
                     
                     //изменяем счётчики на главной форума
                     $str=file("../data/forum/razd.dat");
                     $nom=count($str);
                     
                     $i='-1';
                     $var=$nom-1;
                     $filelinck = fopen("../data/forum/razd.dat", "w+");
                     flock ($filelinck,LOCK_EX);
                     while(++$i <= $var)
                     {
                        $arr = explode("<||>",$str[$i]);
                        if($arr[1] == $r)
                        {
                           ++$arr[3];
                           $str_new= ''.$arr[0].'<||>'.$arr[1].'<||>'.$arr[2].'<||>'.$arr[3].'<||>'.$t.'<||>'.$nazv_teme.'<||>'.$login.'<||>'.$time_post.'<||>
';
                           $nazv_razd = $arr[0];//для записи в список популярных тем
                           $str[$i] = str_replace($str[$i],$str_new,$str[$i]);
                        }
                        fputs($filelinck,$str[$i]);
                     }
                     flock ($filelinck,LOCK_UN);
                     fclose($filelinck);
                     @chmod("../data/forum/razd.dat", 0666);
                     
                     
                     //Код добавления в список новых сообщений
                     $kod2=''.$r.'<||>'.$t.'<||>'.$nazv_razd.'<||>'.$nazv_teme.'<||>'.$login.'<||>';
                     $str = file("../data/forum/new.dat");
                     $nom=count($str);
                     
                     $i='-1';
                     $var=$nom-1;
                     $file_new_dat = fopen("../data/forum/new.dat", "w+");
                     flock ($file_new_dat,LOCK_EX);
                     while(++$i <= $var)
                     {
                        $arr = explode("<||>",$str[$i]);
                        if($arr[1] != $t)
                        {
                           fputs($file_new_dat,$str[$i]);
                        }
                     }
                     fputs($file_new_dat,$kod2."\r\n");
                     flock ($file_new_dat,LOCK_UN);
                     fclose($file_new_dat);
                     @chmod("../data/forum/new.dat", 0666);
                     
                     
                     
                     
                     
                     
                     //Вычисления для посылки на последнюю страницу
                     $coi = count(file("../data/forum/topik-$t.dat"));
                     $asd = $coi -1;
                     $asd2 = floor($asd / $nav_forum_post)+1; 
                     $asd3 = "0";
                     echo'Сообщение добавлено<br>';
                     echo'<a href="topik.php?r='.$r.'&amp;t='.$t.'&amp;nom_page='.$asd2.'&amp;'.SID.'">На послед. стр.</a><br>';
                     header('Location: topik.php?r='.$r.'&t='.$t.'&nom_page='.$asd2.'&'.SID.'');//мгновенная переадресация нужно без меток ""
                  }else{ echo'Слишком длинное сообщение, сообщение не должно превышать 1000 символов <a href="post.php?str_razdela='.$str_razdela.'&amp;str_temes='.$str_temes.'&amp;'.SID.'">далее</a><br>'; }
               }else
               {
                  echo'Не заполнена форма<br>';
               }
            }else{ echo'<B>Тема закрыта</B><br>'; }
            echo'<a href="topik.php?r='.$r.'&amp;t='.$t.'">К теме</a><br>';
            
            
         }else{ echo'раздела не существует<br>'; }
      }
   }
   
   
}

if($status=="ban")
{
   echo'Ваш акаунт временно заблокирован, причины ниже<br>';
   echo'<B>'.$prichina_bana.'</B><br><br>В данный момент вы можете только читать форум, или зарегистрировать себе другой акаунт. ЗНАЙТЕ, ЕСЛИ НАРУШЕНИЯ С ВАШЕЙ СТОРОНЫ НЕ ПРЕКРАТЯТСЯ, ТО ДОСТУП В ФОРУМ ВАМ БУДЕТ ЗАКРЫТ ПОЛНОСТЬЮ!!!<br>';
}

include("../sistem/global_end.dat");
include("../temes/$teme/niz.dat");
?>