View file modules/forum/add.php

File size: 20.06Kb
<?php
########################################
##	           WAP-ENGINE             ##
########################################
##                                    ##
##  Автор : CHUMA (Токарев Владимир)  ##
##  e-mail : [email protected]     ##
##  WAP : http://wap-engine.ru        ##
##                                    ##
########################################
##         ВЫ НЕ ИМЕЕТЕ ПРАВО         ##
##        ИЗМЕНЯТЬ КОД СКРИПТА        ##
##  ДЛЯ ДАЛЬНЕЙШЕГО РАСПРОСТРАНЕНИЯ!  ##
########################################
include ('../../config.php');
include ('../../templates/run.php');
include ('../../templates/func.php');
$title_page = 'Ответить в тему';
$m_polozhenie = 'На форуме пишет ответ';
####################
$id = filter($_GET['id']);
$str = filter($_GET['str']);
$str_r = filter($_GET['str_r']);
$str_t = filter($_GET['str_t']);

$razdel_data = '../../data/forum/razdel.php';
$razdel_f = file($razdel_data);
$podrazdel_data = '../../data/forum/podrazdel.php';
$podrazdel_f = file($podrazdel_data);
$podrazdel_count = count($podrazdel_f);
$razdel_arr = explode('|', $razdel_f[$str_r]);
$podrazdel_arr = explode('|', $podrazdel_f[$str]);

$temy_data = '../../data/forum/podrazdel/'.$podrazdel_arr[0].'.php';
$temy_f = @file($temy_data);
$temy_count = count($temy_f);

$tem_data = '../../data/forum/temy/'.$podrazdel_arr[0].'_'.$id.'.php';
$tem_f = @file($tem_data);
####################
if(empty($_GET['act']))
 {
  include '../../themes/'.$themes.'.php';
if ($portal=='off')
 {
  echo'<p align="center">'.$offmes.'</p>';
 }

if ($portal=='on')
 {
  echo'<p class="modul_name"align="center"><a href="index.php?'.session_name().'='.session_id().'">Форум</a> &#187; <a href="index.php?act=showrazdel&amp;str_r='.$str_r.'&amp;'.session_name().'='.session_id().'">'.$razdel_arr[1].'</a> &#187; <a href="index.php?act=showforum&amp;id='.$podrazdel_arr[0].'&amp;str='.$str.'&amp;str_r='.$str_r.'&amp;'.session_name().'='.session_id().'">'.$podrazdel_arr[2].'</a></p>';
  
  if(isset($_SESSION['sespass']) && isset($passw) && $_SESSION['sespass'] == $passw)
   {
    if($_GET['err'] == 1)
     {
      echo'<p class="err">Ошибка!!! Вы не ввели текст сообщения.</p>';
     }
    if($_GET['err'] == 2)
     {
      echo'<p class="err">Ошибка!!! Текст сообщения более 3000.</p>';
     }
    if($_GET['err'] == 3)
     {
      echo"<p class=\"err\">Ошибка!!! Вас забанил $banwho за $bantxt! Окончание бана: $bantime[6]$bantime[7].$bantime[4]$bantime[5].$bantime[0]$bantime[1]$bantime[2]$bantime[3] в $bantime[8]$bantime[9]:$bantime[10]$bantime[11] по времени сервера.</p>";
     }
    if($_GET['err'] == 4)
     {
      echo'<p class="err">Ошибка!!! Данная тема уже закрыта.</p>';
     }
    
    if($_GET['otv'] == 1)
     {
      $text = explode('|', $tem_f[$str_t]);

user_data('../../data/users/'.$text[0].'.php');
$nick_name_arr = explode('::', $nickname);
$nickname = $nick_name_arr[0];
$nickcolor = $nick_name_arr[1];
if(!empty($nickname))
{
if(!empty($nickcolor))
{
$login_nick_color[0] = "$nickname";
}
else
{
$login_nick_color[0] = "$nickname";
}
}
else
{
$login_nick_color[0] = "$text[0]";
}

      $text = "[red]$login_nick_color[0][/red], ";
     }
    elseif($_GET['cit'] == 1)
     {
      $text = explode('|', $tem_f[$str_t]);
      $text_mes = str_replace('<br />', "\r\n", $text['3']);
      $text_mes = preg_replace('#<q>(?:.*?)</q>#su','', $text_mes);
      $text_mes = bb_back($text_mes);
      $text_mes = smiles_back($text_mes);

user_data('../../data/users/'.$text[0].'.php');
$nick_name_arr = explode('::', $nickname);
$nickname = $nick_name_arr[0];
$nickcolor = $nick_name_arr[1];
if(!empty($nickname))
{
if(!empty($nickcolor))
{
$login_nick_color[0] = "$nickname";
}
else
{
$login_nick_color[0] = "$nickname";
}
}
else
{
$login_nick_color[0] = "$text[0]";
}
      $text = "[q][red]$login_nick_color[0][/red], ".trim($text_mes)."[/q]\r\n";
     }
    else
     {
      $text = '';
     }

    echo"<p class=\"a\">Новое сообщение</p>";
    echo"<form method=\"post\" action=\"add.php?act=send&amp;id=$id&amp;str=$str&amp;str_r=$str_r&amp;".session_name()."=".session_id()."\">";
    echo"<p class=\"b\">Сообщение:<br /><textarea rows=\"4\" cols=\"15\" name=\"msg\">$text</textarea><br />";
if($trans == '1')
{
echo"<input type=\"checkbox\" name=\"msgtrans\" value=\"1\" /> Транслит<br />";
}
 echo"<input value=\"Ответить\" name=\"do\" type=\"submit\" /></p></form>";
    
    echo"<p><a href=\"add.php?id=$id&amp;str=$str&amp;str_r=$str_r&amp;act=smile&amp;".session_name()."=".session_id()."\">Смайлы</a> |
    <a href=\"add.php?id=$id&amp;str=$str&amp;str_r=$str_r&amp;act=trans&amp;".session_name()."=".session_id()."\">Транслит</a> |
    <a href=\"add.php?id=$id&amp;str=$str&amp;str_r=$str_r&amp;act=bbcodes&amp;".session_name()."=".session_id()."\">Теги</a></p>";  
    echo'<p><br /><a href="index.php?'.session_name().'='.session_id().'">В форум</a></p>';
   }
    else
   { 
    echo"<p class=\"err\">Вы не авторизованы!!! Войдите в личный кабинет.<br></p>";
    echo"<p><a href=\"../kabinet/index.php?".session_name()."=".session_id()."\">В кабинет</a><br></p>";
   }
}
  include '../../templates/foot.php';
 }
####################
if($_GET['act'] == 'send')
 {
  if (isset($_SESSION['sespass']) && isset($passw) && $_SESSION['sespass'] == $passw)
   {
    $forum_flood = '../../data/flood_forum.txt';
    $forum_flood_list = file($forum_flood);
    $flood_time = time();
    $ip = filter($_SERVER['REMOTE_ADDR']);

      $msg = filter($_POST['msg']);
      $msg = str_replace('|', '', $msg);
      if($_POST['msgtrans']==1)
       {
        $msg = tr_to_win($msg);
       }

      $time = date("H:i:s", time() + $sdvigclock*3600);
      $date = date("d.m.Y", time() + $sdvigclock*3600);

      $date_now = date ("YmdHis", time() + $sdvigclock*3600);
      if($bantime > $date_now)
       {
        $errb = '2';
       }
       
      # Проверка на флуд
      $flood = 0;
      foreach ($forum_flood_list as $key => $string) 
       {
        $flood_arr = explode('|', $string);
        if(trim($flood_arr[0]) == $ip && trim($flood_arr[1]) + $antiflood_forum >= $flood_time) 
         {
          $flood = 1;
          break;
         }
       }
      # Проверка на флуд
       
      for($i=2; $i < $temy_count-2; $i++)
       {
        $temy_exp = explode('|', $temy_f[$i]);
        if($id == $temy_exp[0])
         {
          if($temy_exp[6] == '#')
           {
            $tema_zakr = 1;
           }
          break;
         }
       }
        
      if(!empty($podrazdel_arr[3]) && $_SESSION['passrazd'] != trim($podrazdel_arr[3]))
       {
        include '../../themes/'.$themes.'.php';
if ($portal=='off')
 {
  echo'<p align="center">'.$offmes.'</p>';
 }

if ($portal=='on')
 {
        echo'<p class="err">Внимание!!! Данный раздел под паролем.<br /></p>';
        echo'<form method="post" action="vhod.php?id='.$podrazdel_arr[0].'&amp;str='.$str.'&amp;str_r='.$str_r.'&amp;'.session_name().'='.session_id().'">';
        echo'<p class="b">Пароль:<br /><input name="passrazd" maxlength="10" value="" /><br />';
        echo'<input value="Войти" name="do" type="submit" /></p></form>';
        echo'<p><a href="index.php?'.session_name().'='.session_id().'">В форум</a><br /></p>';
}
        include ('../../templates/foot.php');
        exit;
       }
  
      if(empty($msg))
       {
        header ('location: add.php?id='.$id.'&str='.$str.'&str_r='.$str_r.'&err=1&'.session_name().'='.session_id().'');
        exit;
       }
      elseif(strlen($msg) > 3000 && $status > 3)
       {
        header ('location: add.php?id='.$id.'&str='.$str.'&str_r='.$str_r.'&err=2&'.session_name().'='.session_id().'');
        exit;
       }
      elseif($errb == "2")
       {
        header ('location: add.php?id='.$id.'&str='.$str.'&str_r='.$str_r.'&err=3&'.session_name().'='.session_id().'');
        exit;
       }
      elseif($tema_zakr == 1)
       {
        header ('location: add.php?id='.$id.'&str='.$str.'&str_r='.$str_r.'&err=4&'.session_name().'='.session_id().'');
        exit;
       }
      elseif($flood == 1)
       {
        header ('location: showtema.php?id='.$id.'&str='.$str.'&str_r='.$str_r.'&err=flood&page='.filter($_GET['page']).'&'.session_name().'='.session_id().'');
        exit;
       }
       
      $msg = smiles($msg);
      $msg = antimat($msg);
      $msg = bbcodes($msg);
      $msg = stripslashes($msg);
      $msg = str_replace("\r\n", '<br />', $msg);
      
      for($i=2; $i < $temy_count - 2; $i++)
       {
        $temy_str = explode('|', $temy_f[$i]);
        if($temy_str[0] == $id)
         {
          $mes_all = $temy_str[8] + 1;
          $temy_arr[] = "$temy_str[0]|$temy_str[1]|$temy_str[2]|$temy_str[3]|$temy_str[4]|$temy_str[5]|$temy_str[6]|$login|$mes_all";
          $name_tema = $temy_str[4];
          $avtor_temy = $temy_str[1];
         }
       }
      for($i=2; $i < $temy_count - 2; $i++)
       {
        $temy_str = explode('|', $temy_f[$i]);
        if($temy_str[0] != $id)
         {
          $temy_arr[] = trim($temy_f[$i]);
         }
       }
      if(!empty($temy_arr))
       { $temy_n_str = trim(implode("\r\n", $temy_arr)); } else
       { $temy_n_str = ''; }
      
      $str_put = "<?php\r\n/*\r\n$temy_n_str\r\n*/\r\n?>";
      
      write_to_file($temy_data, $str_put);
      
      for($i=2; $i < $podrazdel_count - 2; $i++)
       {
        $pod_str = explode('|', $podrazdel_f[$i]);
        if($pod_str[0] == $podrazdel_arr[0])
         {
          $mes_all = $pod_str[5] + 1;
          $pod_arr[] = trim($pod_str[0]).'|'.trim($pod_str[1]).'|'.trim($pod_str[2]).'|'.trim($pod_str[3]).'|'.trim($pod_str[4]).'|'.$mes_all;
         }
        else
         {
          $pod_arr[] = trim($podrazdel_f[$i]);
         }
       }

      $pod_n_str = trim(implode("\r\n", $pod_arr));
      $pod_put = "<?php\r\n/*\r\n$pod_n_str\r\n*/\r\n?>";
      
      write_to_file($podrazdel_data, $pod_put);
      
      $back = @file_get_contents($tem_data);
      $back = str_replace("*/\r\n?>", '', $back);
      
      write_to_file($tem_data, $back."$login|$date|$time|$msg\r\n*/\r\n?>");
      
      # Запись в базу антифлуда
      $flood_list_new = $ip.'|'.$flood_time."\r\n";
      foreach ($forum_flood_list as $key => $string) 
       {
        $flood_arr = explode('|', $string);

        if(trim($flood_arr[0]) != $ip && trim($flood_arr[1]) + $antiflood_forum >= $flood_time)
         {
          $flood_list_new .= trim($flood_arr[0]).'|'.trim($flood_arr[1])."\r\n";
         }
       }

      write_to_file($forum_flood, $flood_list_new);
      # Запись в базу антифлуда
      
      ###
      // Запись последних ответов
      $last_mes_f = @file('../../data/forum/last_mes.php');
      @array_splice($last_mes_f, 0, 2);
      @array_splice($last_mes_f, -2, 2);
      $last_mes_arr[] = "$id|$str|$str_r|$login|$date|$time|$name_tema|$mes_all";
      for($l=0; $l < 100; $l++)
       {
        $last_mes_arr2 = explode('|', $last_mes_f[$l]);
        if(!empty($last_mes_f[$l]) && $last_mes_arr2[0] != $id || $last_mes_arr2[1] != $str || $last_mes_arr2[2] != $str_r)
         {
          $last_mes_arr[] = trim($last_mes_f[$l]);
         }
       }
      if(!empty($last_mes_arr))
       { $last_mes_str = trim(implode("\r\n", $last_mes_arr)); } else
       { $last_mes_str = ''; }
       
      $str_put = "<?php\r\n/*\r\n$last_mes_str\r\n*/\r\n?>";

      write_to_file('../../data/forum/last_mes.php', $str_put);
      ###
      
      $tem_f = @file($tem_data);
      @array_splice($tem_f, 0, 2);
      @array_splice($tem_f, -2, 2);
      $tem_count = count($tem_f);
      $stranic = ceil($tem_count/$koltemmes);
      
      $mes_forum = $mes_forum + 1;
      $rating = $rating + 1;

      if($rating == 10 && $status == '5')
       {
        $status = '4';
       }
       
      $str_to_user_file = str_user_data(); # Строка данных пользователя находится в файле templates/func.php
      
      write_to_file('../../data/users/'.$login.'.php', "<?php\r\n/*\r\n$str_to_user_file\r\n*/\r\n?>");
      
      ###
      // Отправка уведомления о новых ответах автору
      if(file_exists('../../data/forum/temy/'.$podrazdel_arr[0].'_'.$id.'_podpiska.php') && $login != $avtor_temy)
       {
        $podp_nicks = file('../../data/forum/temy/'.$podrazdel_arr[0].'_'.$id.'_podpiska.php');
        @array_splice($podp_nicks, 0, 2);
        @array_splice($podp_nicks, -2, 2);
        $count_podp_nicks = count($podp_nicks);
        $date = date("d.m.Y / H:i:s", time() + ($sdvigclock*3600));
      
        for($ii=0; $ii <= $count_podp_nicks; $ii++)
         {
          $komu = trim($podp_nicks[$ii]);
          $inbox_f = @file('../../data/inbox/'.$komu.'.php');
          $inbox_count = count($inbox_f) - 2;
          
          $nicks = file('../../data/nicks.php');
          $count_nicks = count($nicks);
          $count_nicks = $count_nicks - 2;
	      $user_est = 0;
          for($i=2; $i <= $count_nicks; $i++)
           {
            if($komu == trim($nicks[$i]))
	         {
	          $user_est = 1;
	          break;
	         }
           }
          if($user_est == 1 && $inbox_count < $kolmesls + 2)
           {
            $mes_to_inbox_file = "CICTEMA|$date|В вашей теме \"<a href=\"../forum/showtema.php?id=$id&amp;str=$str&amp;str_r=$str_r&amp;page=$stranic\">$name_tema</a>\" ответил $login|1\r\n";
            for($iii=2; $iii < $inbox_count; $iii++)
             {	
		      $mes_to_inbox_file .= $inbox_f[$iii];
             }
            $mes_to_inbox_file = trim($mes_to_inbox_file);
          
            write_to_file('../../data/inbox/'.$komu.'.php', "<?php\r\n/*\r\n$mes_to_inbox_file\r\n*/\r\n?>");
      
            user_data('../../data/users/'.$komu.'.php');  # Считывание данных пользователя находится в файле templates/func.php
  
            $new_ls = $new_ls + 1;
      
            $str_to_user_file = str_user_data(); # Строка данных пользователя находится в файле templates/func.php

            write_to_file('../../data/users/'.$komu.'.php', "<?php\r\n/*\r\n$str_to_user_file\r\n*/\r\n?>");
           }
         }
       }
      ###
    
      header ("Location: showtema.php?id=$id&str=$str&str_r=$str_r&page=$stranic&".session_name()."=".session_id()."");
   }
    else
   {
    include '../../themes/'.$themes.'.php'; 
if ($portal=='off')
 {
  echo'<p align="center">'.$offmes.'</p>';
 }

if ($portal=='on')
 {
    echo"<p class=\"err\">Вы не авторизованы!!! Войдите в личный кабинет.<br></p>";
    echo"<p><a href=\"../kabinet/index.php?".session_name()."=".session_id()."\">В кабинет</a><br></p>";
}
    include '../../templates/foot.php'; 
   }
 }
####################
if ($_GET[act]=='smile') 
 {
  include '../../themes/'.$themes.'.php';
if ($portal=='off')
 {
  echo'<p align="center">'.$offmes.'</p>';
 }

if ($portal=='on')
 {
  $sm_dir = opendir("../../sm");
  while ($file = readdir($sm_dir))
   {
    if($file != "Thumbs.db" && $file != ".." && $file != ".")
     {
      $smiles[] = "$file";
     }
   } 
  closedir ($sm_dir);
  sort($smiles);
  $count = count($smiles);
  $kolsm = 10;
  $stranic = ceil($count/$kolsm);

  if(empty($_GET["page"]))
   {
    $page_get = 1;
   }
    else
   {
    $page_get = filter($_GET['page']);
   }
   
  if($page_get < 0)
   {
    $page_get = 1;
   }
  if($page_get > $stranic)
   {
    $page_get = $stranic;
   }
 
  $do = $kolsm * ($page_get - 1);
  $end = $kolsm * $page_get;

  $page_nazad = $page_get - 1;
  $page_dalee = $page_get + 1;
  
  echo'<p class="modul_name">Доступные смайлы<br /></p>';
  echo'<p class="b">';
  for ($i = $do; $i < $end; $i++)
   {
    if(!empty($smiles[$i]))
     {
      $smile = explode(".", $smiles[$i]);
      echo"<img src=\"../../sm/$smile[0].$smile[1]\" alt=\":$smile[0]\" /> - :$smile[0]<br />";
     }
   }
  echo'</p>';
  echo'<p align="center" class="d">';
  echo'Страницы:';
  echo'<br />';
  if($page_get > 4)
   {
    echo"<a href=\"add.php?act=smile&amp;id=$id&amp;str=$str&amp;str_r=$str_r&amp;page=1&amp;".session_name()."=".session_id()."\">1</a>...";
   }
 
  $start_1 = $page_get - 3;
  $end_1 = $page_get - 1;
  if($start_1 < 1)
   {
    $start_1 = 1;
   }
  
  for($i = $start_1; $i <= $end_1; $i++)
   {
    echo"<a href=\"add.php?act=smile&amp;id=$id&amp;str=$str&amp;str_r=$str_r&amp;page=$i&amp;".session_name()."=".session_id()."\">$i</a> ";
   }

  echo"$page_get";

  $start_2 = $page_get + 1;
  $end_2 = $page_get + 3;
  if($start_2 < 1)
   {
    $start_2 = 1;
   }
  if($end_2 > $stranic)
   {
    $end_2 = $stranic;
   }
  
  for($i = $start_2; $i <= $end_2; $i++)
   {
    echo" <a href=\"add.php?act=smile&amp;id=$id&amp;str=$str&amp;str_r=$str_r&amp;page=$i&amp;".session_name()."=".session_id()."\">$i</a>";
   }

  if($stranic > $page_get && $page_get < ($stranic-3))
   {
    echo"...<a href=\"add.php?act=smile&amp;id=$id&amp;str=$str&amp;str_r=$str_r&amp;page=$stranic&amp;".session_name()."=".session_id()."\">$stranic</a>";
   }
  echo"<br />";

  if($page_get > 1)
   {
    echo"<a href=\"add.php?act=smile&amp;id=$id&amp;str=$str&amp;str_r=$str_r&amp;page=$page_nazad&amp;".session_name()."=".session_id()."\">Назад</a>";
   }
  echo" | ";
  if($stranic > $page_get)
   {
    echo"<a href=\"add.php?act=smile&amp;id=$id&amp;str=$str&amp;str_r=$str_r&amp;page=$page_dalee&amp;".session_name()."=".session_id()."\">Дальше</a>";
   } 
  echo"<br />";
  echo"</p>";
  echo"<p>Всего $count смайлов<br /><br /></p>";	
  echo"<p><a href=\"add.php?id=$id&amp;str=$str&amp;str_r=$str_r&amp;".session_name()."=".session_id()."\">К созданию ответа</a></p>";  
  echo"<p><a href=\"index.php?".session_name()."=".session_id()."\">В форум</a></p>";
}
  include '../../templates/foot.php';
 }
####################
if ($_GET[act]=='trans') 
 {
  include '../../themes/'.$themes.'.php';
if ($portal=='off')
 {
  echo'<p align="center">'.$offmes.'</p>';
 }

if ($portal=='on')
 {
  echo'<p class="modul_name">Правила транслита<br /></p>';
  echo"<p class=\"b\">";
  echo"
а - a<br />
б - b<br />
в - v<br />
г - g<br />
д - d<br />
е - e<br />
ё - yo<br />
ж - zh<br />
з - z<br />
и - i<br />
й - j<br />
к - k<br />
л - l<br />
м - m<br />
н - n<br />
о - o<br />
п - p<br />
р - r<br />
с - s<br />
т - t<br />
у - u<br />
ф - f<br />
х - h<br />
ц - c<br />
ч - ch<br />
ш - sh<br />
щ - sch<br />
ъ - q<br />
ы - x<br />
ь - '<br />
э - ye<br />
ю - yu<br />
я - ya<br /><br />
А - A<br />
Б - B<br />
В - V<br />
Г - G<br />
Д - D<br />
Е - E<br />
Ё - YO<br />
Ж - ZH<br />
З - Z<br />
И - I<br />
Й - J<br />
К - K<br />
Л - L<br />
М - M<br />
Н - N<br />
О - O<br />
П - P<br />
Р - R<br />
С - S<br />
Т - T<br />
У - U<br />
Ф - F<br />
Х - H<br />
Ц - C<br />
Ч - CH<br />
Ш - SH<br />
Щ - SCH<br />
Ъ - Q<br />
Ы - X<br />
Э - YE<br />
Ю - YU<br />
Я - YA<br />
</p>";  	
  echo"<p><a href=\"add.php?id=$id&amp;str=$str&amp;str_r=$str_r&amp;".session_name()."=".session_id()."\">К созданию ответа</a></p>";  
  echo"<p><a href=\"index.php?".session_name()."=".session_id()."\">В форум</a></p>";
}
  include '../../templates/foot.php';
 }
####################
if($_GET[act] == 'bbcodes')
 {
  include '../../themes/'.$themes.'.php';
if ($portal=='off')
 {
  echo'<p align="center">'.$offmes.'</p>';
 }

if ($portal=='on')
 {
  echo'<p class="modul_name">BB коды<br /></p>';
  bbcodes('show_list_bbcodes');
  echo"<p><a href=\"add.php?id=$id&amp;str=$str&amp;str_r=$str_r&amp;".session_name()."=".session_id()."\">К созданию ответа</a></p>";  
  echo"<p><a href=\"index.php?".session_name()."=".session_id()."\">В форум</a></p>";
}
  include '../../templates/foot.php';
 }
####################
?>