View file forum/new_topik.php

File size: 8.66Kb
<?php
include("../sistem/cfg.dat");
include("../sistem/cfg_forum.dat");
include("../sistem/global.dat");
include("../sistem/functions_forum.dat");
include("../sistem/functions_txt.dat");
include("../temes/$teme/verh.dat");

if($status=="uzer" || $status=="moder" || $status=="admin")
{
   echo'<div class="razd"><B>Форум</B></div>';
   if(isset($_POST['t'])){$t = $_POST['t'];}
   $t=htmlspecialchars($t);
   
   if (eregi("[^0-9]" , $t )){ echo'запрещённые символы<br>'; }else
   {
      if(file_exists("../data/forum/$t.tem") && file_exists("../data/forum/$t.topik"))
      {
         $cfg_tem = file_get_contents("../data/forum/$t.tem");
         $cfg_tem = explode("<||>",$cfg_tem);//статус темы<||>номер раздела<||>Название темы<||>кол постов<||>дата посл сообщ<||>автор посл сообщ<||>
         
         if(file_exists("../data/forum/$cfg_tem[1].razd") && file_exists("../data/forum/$cfg_tem[1].temes"))
         {
      	    $cfg_razd = file_get_contents("../data/forum/$cfg_tem[1].razd");
            $cfg_razd = explode("<||>",$cfg_razd);
      	    
            
            
            if($cfg_tem[0] == "activ" || $cfg_tem[0] == "zacrep")
            {
               if(isset($_POST['txtsob'])){$txtsob = $_POST['txtsob'];}
               if($txtsob && $txtsob != "")
               {
                  if("1000" >= strlen($txtsob))
                  {
                     //Убираем ненужное
                     $txtsob = htmlspecialchars($txtsob);
                     $txtsob = str_replace("\n","<br>",$txtsob);
                     $txtsob = trim($txtsob);
                     $txtsob = smiles($txtsob);
                     $txtsob = bb($txtsob);
                     $txtsob = stripslashes($txtsob);//функция убираний слешей, обрабатывать только в последнюю очередь
                     
                     //увеличиваем счетчик постов всего форума
                     $tmp_098 = new_count_post();
                     
                     //записываем пост
                     $time_post = htmlspecialchars(date("d.m.y H:i:s"));
                     $kod2=''.$login.'<||>'.$time_post.'<||>'.$txtsob.'<||>';//В хранилище постов
                     $file_post_data = fopen("../data/forum/$t.topik", "a+");//записываем пост
                     flock ($file_post_data,LOCK_EX);
                     fputs($file_post_data,$kod2."\n");
                     flock ($file_post_data,LOCK_UN);
                     fclose($file_post_data);
                     @chmod("../data/forum/$t.topik", 0666);
                     
                     //изменяем параметры темы
                     $kod1=''.$cfg_tem[0].'<||>'.$cfg_tem[1].'<||>'.$cfg_tem[2].'<||>'.($cfg_tem[3] + 1).'<||>'.$time_post.'<||>'.$login.'<||>';//в настройки темы
                     $file_teme = fopen("../data/forum/$t.tem", "w+");
                     flock ($file_teme,LOCK_EX);
                     fputs($file_teme, $kod1);
                     flock ($file_teme,LOCK_UN);
                     fclose($file_teme);
                     @chmod("../data/forum/$t.tem", 0666);
                     
                     //изменяем параметры раздела
                     $kod1=''.$cfg_razd[0].'<||>'.$cfg_razd[1].'<||>'.($cfg_razd[2] + 1).'<||>'.$cfg_tem[2].'<||>'.$login.'<||>'.$t.'<||>';//в настройки раздела
                     $file_teme = fopen("../data/forum/$cfg_tem[1].razd", "w+");
                     flock ($file_teme,LOCK_EX);
                     fputs($file_teme, $kod1);
                     flock ($file_teme,LOCK_UN);
                     fclose($file_teme);
                     @chmod("../data/forum/$cfg_tem[1].razd", 0666);
                     
                     
                     //поднимаем в списках тем
                     $str = file("../data/forum/$cfg_tem[1].temes");
                     $nom = count($str);
                     $i = 0;
                     $filelinck = fopen("../data/forum/$cfg_tem[1].temes", "w+");
                     flock ($filelinck,LOCK_EX);
                     while($i < $nom)
                     {
                        $as=explode("<||>",$str[$i]);
                        if($as[1] != $t)
                        {
                           fputs($filelinck,$str[$i]);
                        }
                        ++$i;
                     }
                     $str_new= ''.$cfg_tem[0].'<||>'.$t.'<||>';
                     fputs($filelinck,$str_new."\n");
                     flock ($filelinck,LOCK_UN);
                     fclose($filelinck);
                     @chmod("../data/forum/$cfg_tem[1].temes", 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);
                     //закончили увеличиваем счет постов у юзера
                     
                     
                     //Код добавления в список новых сообщений
                     $str = file("../data/forum/new.dat");
                     $nom=count($str);
                     $i='0';
                     $file_new_dat = fopen("../data/forum/new.dat", "w+");
                     flock ($file_new_dat,LOCK_EX);
                     while($i < $nom)
                     {
                        if(trim($str[$i]) != $t)
                        {
                           fputs($file_new_dat,$str[$i]);
                        }
                        ++$i;
                     }
                     fputs($file_new_dat,$t."\n");
                     flock ($file_new_dat,LOCK_UN);
                     fclose($file_new_dat);
                     @chmod("../data/forum/new.dat", 0666);
                     
                     
                     //Вычисления для посылки на последнюю страницу
                     $coi = count(file("../data/forum/$t.topik"));
                     $kol_page = ceil($coi / $nav_forum_post); 
                     
                     echo'Сообщение добавлено<br>';
                     echo'<a href="topik.php?t='.$t.'&amp;nom_page='.$kol_page.'&amp;'.SID.'">На послед. стр.</a><br>';
                     header('Location: topik.php?&t='.$t.'&nom_page='.$kol_page.'&'.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>';
}

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