View file forum/new_temes.php

File size: 13.46Kb
<?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($_GET['r'])){$r = $_GET['r'];}
   $r=htmlspecialchars($r);
   
   if (eregi("[^0-9]" , $r)){ echo'запрещённые символы<br>'; }else
   {
      //$str = file("razd.dat");//////////////////получаем параметры раздела
      //$arr=explode("<||>",$str[$str_razdela]);//получаем параметры раздела
      
      if (file_exists("../data/forum/temes-$r.dat"))
      {
         //показываем название раздела
         $str = file("../data/forum/razd.dat");
         $nom=count($str);
         $i='-1';
         $var=$nom-1;
         while(++$i <= $var)
         {
            $as=explode("<||>",$str[$i]);
            if($as[1] == $r)
            {
               echo'<div class="sob"><B>'.$as[0].'</B></div>';
               $nazv_razd = $as[0];//запомнили название раздела
            }
         }
         //закончили показывать название раздела
         
         
         
         
         
         if(isset($_POST['txtsob'])){$txtsob = $_POST['txtsob'];}
         if(isset($_POST['nazv_temes'])){$nazv_temes = $_POST['nazv_temes'];}
         
         if($txtsob && $nazv_temes)
         {
            if("1000" >= strlen($txtsob) && "60" >= strlen($nazv_temes))
            {
               //чистим от лишнего и добавляем переносы строк
               $nazv_temes=htmlspecialchars($nazv_temes);
               $txtsob=htmlspecialchars($txtsob);
               $nazv_temes =str_replace("\r","",$nazv_temes);
               $nazv_temes =str_replace("\n","",$nazv_temes);
               $txtsob =str_replace("\r","",$txtsob);
               $txtsob =str_replace("\n","<br>",$txtsob);
               //вставляем смайлы
               include("../sistem/smiles.dat");//обработали смайлами и bb кодами
               $txtsob=stripslashes($txtsob);//функция убираний слешей, обрабатывать только в последнюю очередь
               $login =str_replace("\r","",$login);
               $login =str_replace("\n","",$login);
               
               //увеличиваем счетчик тем на 1
               $nomer_temes=file("../data/forum/count_temes.dat");
               ++$nomer_temes[0];
               
               //создаем файл хранилище постов
               if(file_exists("../data/forum/topik-$nomer_temes[0].dat"))//проверяем номер темы , если темы нет, то создаем новую
               {
                  echo'Произошла системная ошибка, связанная с номерацией новых тем. Сообщите пожалуйста администрации об этой ошибке! ';
               }else
               {
                  //если всё правильно, то сохраняем счетчик
                  $file_count_temes = fopen("../data/forum/count_temes.dat", "w+");
                  flock ($file_count_temes,LOCK_EX);
                  fputs($file_count_temes,$nomer_temes[0]);
                  flock ($file_count_temes,LOCK_UN);
                  fclose($file_count_temes);
                  @chmod("../data/forum/count_temes.dat", 0666);
                  
                  //формируем строки
                  $time_post = htmlspecialchars(date("d.m.y H:i:s"));
                  if($status=="uzer")
                  {
                     
                     $kod1='activ<||>'.$time_post.'<||>'.$login.'<||>'.$nazv_temes.'<||>'.$nomer_temes[0].'<||>1<||>';//в хранилище тем
                     $kod2=''.$login.'<||>'.$time_post.'<||>'.$txtsob.'<||>';//В хранилище постов
                     
                  }
                  
                  if($status=="moder" || $status=="admin")
                  {
                     if(isset($_POST['status_teme1'])){$status_teme1 = $_POST['status_teme1'];}
                     if(isset($_POST['status_teme2'])){$status_teme2 = $_POST['status_teme2'];}
                     
                     $st="activ";//статус темы при ошибки
                     
                     if($status_teme1=="otcrep" && $status_teme2=="activ"){ $st="activ"; }//статус темы
                     
                     if($status_teme1=="zacrep" && $status_teme2=="activ"){ $st="zacrep"; }//статус темы
                     
                     if($status_teme1=="otcrep" && $status_teme2=="clos"){ $st="clos"; }//статус темы
                     
                     if($status_teme1=="zacrep" && $status_teme2=="clos"){ $st="zacrep_clos"; }//статус темы
                     
                     $kod1=''.$st.'<||>'.$time_post.'<||>'.$login.'<||>'.$nazv_temes.'<||>'.$nomer_temes[0].'<||>1<||>';//в хранилище тем
                     $kod2=''.$login.'<||>'.$time_post.'<||>'.$txtsob.'<||>';//В хранилище постов
                     
                  }
                  
                  //дописываем новую тему в файл хранилище названий тем
                  $file_temes_data = fopen("../data/forum/temes-$r.dat", "a+");
                  flock ($file_temes_data,LOCK_EX);
                  fputs($file_temes_data, $kod1."\r\n");
                  flock ($file_temes_data,LOCK_UN);
                  fclose($file_temes_data);
                  @chmod("../data/forum/temes-$r.dat", 0666);
                  
                  
                  //создаём файл хранилище постов и записываем первый пост
                  $file_post_data = fopen("../data/forum/topik-$nomer_temes[0].dat", "w+");//создаём файл хранилище постов и записываем первый пост
                  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-$nomer_temes[0].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);
                  //закончили увеличиваем счет постов у юзера
                  
                  
                  //начинаем увеличивать счётчик постов в форуме
                  $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);
                  //закончили увеличивать счётчик постов в форуме
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  //Изменяем показатели в разделах
                  $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)
                  {
                     $as=explode("<||>",$str[$i]);
                     if($as[1] == $r)
                     {
                        ++$as[2];
                        ++$as[3];
                        $str_new= ''.$as[0].'<||>'.$as[1].'<||>'.$as[2].'<||>'.$as[3].'<||>'.$nomer_temes[0].'<||>'.$nazv_temes.'<||>'.$login.'<||>'.$time_post.'<||>
';
                        $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.'<||>'.$nomer_temes[0].'<||>'.$nazv_razd.'<||>'.$nazv_temes.'<||>'.$login.'<||>';
                  $file_new_dat = fopen("../data/forum/new.dat", "a+");
                  flock ($file_new_dat,LOCK_EX);
                  fputs($file_new_dat,$kod2."\r\n");
                  flock ($file_new_dat,LOCK_UN);
                  fclose($file_new_dat);
                  @chmod("../data/forum/new.dat", 0666);
                  
                  
                  echo'Новая тема успешно создана <a href="temes.php?r='.$r.'&amp;'.SID.'">Далее</a><br>';
               }
            }else{ echo'Слишком длинное сообщение или название темы <a href="temes.php?r='.$r.'&amp;'.SID.'">Назад</a><br>'; }
      }else
      {
      	 echo'<b>Заполните все поля</b><br>';
         echo'<form name="forma" action="new_temes.php?'.SID.'" method="post">
<INPUT TYPE="hidden" NAME="r" VALUE="'.$r.'">
Название новой темы<br>
<input type="text" name="nazv_temes" value="" size="20" maxlength="60"><br>
Текст первого поста<br>
<TEXTAREA NAME="txtsob" ROWS=3 COLS=20></TEXTAREA><br>';
         if($status=="moder" || $status=="admin")
         {
            echo'Парамет темы 1<br>';
            echo'<SELECT NAME="status_teme1">';
            echo'<OPTION VALUE="otcrep" selected>Откреплена';
            echo'<OPTION VALUE="zacrep">Закреплена';
            echo'</SELECT><br><br>';
            
            echo'Парамет темы 2<br>';
            echo'<SELECT NAME="status_teme2">';
            echo'<OPTION VALUE="activ" selected>Открыта';
            echo'<OPTION VALUE="clos">Закрыта';
            echo'</SELECT><br><br>';
         }
         echo'<input type="submit" name="" value="Добавить"><br></form>';
         echo'&#187;<a href="../pages/smiles.php?act=1&amp;'.SID.'">Смайлы</a>|<a href="../pages/bb.php?'.SID.'">BB коды</a><br>';
         echo'&#187;<a href="temes.php?r='.$r.'&amp;'.SID.'">Назад</a><br>'; 
      }
      
      
   }else
   { echo'Выбранного раздела нет<br>'; }
   }
}

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

echo'<a href="../index.php?">На главную</a><br>';
include("../sistem/global_end.dat");
include("../temes/$teme/niz.dat");
?>