View file chat/index.php

File size: 11.01Kb
<?php
///////////////////////////////
//автор - figura             //
//сайт - http://f-pt.ru   //
///////////////////////////////
include("../sistem/cfg.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['txtsob'])){$txtsob = $_POST['txtsob'];}
   if(empty($act)){$act="index";}
   if($act == "index")
   {
      echo'<form name="forma" action="index.php?'.SID.'" method="post">';
      echo'<INPUT TYPE="hidden" NAME="act" VALUE="end">';
      echo'Сообщение<br>';
      echo'<TEXTAREA NAME="txtsob" ROWS=3 COLS=20></TEXTAREA><br>';
      echo'<input type="submit" name="" value="Написать"><br>';
      echo'</form>';
      echo'&#187;<a href="index.php?act=index&amp;rand='.rand(11,99).'&amp;'.SID.'">Обновить</a>|<a href="../pages/smiles.php?act=1&amp;'.SID.'">Смайлы</a>|<a href="../pages/bb.php?'.SID.'">BB коды</a><br>';
      
      echo'<hr size="2" width="100%">';
      //вывод сообщений
      $str = file("../data/chat/chat.dat");
      $str=array_reverse($str);//перевернули масив
      $nom=count($str)-1;
      
      
      //начало новой навигации
      if(isset($_GET['nom_page'])){$nom_page = $_GET['nom_page'];}else{ $nom_page = "1"; }
      if(eregi("[^0-9]" , $nom_page )){ $nom_page = "1"; }
      $asd = $nom_page - 1;
      $i= $asd * $navchat;
      $var = $i+$navchat;
      if($nom < $i){ $var = 0; echo'Страница не найдена!<br>'; }
      
      while($i < $var)
      {
         if($i <= $nom)
         {
            //показываем сообщение
            $arrr=explode("<||>",$str[$i]);
            if($uzer_cfg=@file("../data/uzer/$arrr[0].dat"))
            {
               $file_uzer=explode("<||>",$uzer_cfg[0]);
               $postov_uzer=$file_uzer[2];
               
               $lin_time = time() - $file_uzer[16];
               if($lin_time <= 300)
               {
                  $on_line = '<font COLOR="#008000">[on]</font>';
               }else{ $on_line = '<font COLOR="#B22222">[off]</font>'; }
               
            }else{
               $postov_uzer="Удалён";
               $on_line='';
            }
            echo'<div class="ramk"><div class="sob">'.$img_chat_post.''.$arrr[1].'<br><a href="../pages/my_menu.php?act=anket&amp;if_uzer='.$arrr[0].'&amp;'.SID.'"><B>'.$arrr[0].'</B></a> ['.$postov_uzer.']'.$on_line.'</div>';
            echo''.$arrr[2].'<br>';
            echo'<a href="index.php?act=dobsob&amp;if_uzer='.$arrr[0].'&amp;'.SID.'">Ответить</a>';
            if($status=="moder" || $status=="admin")
            {
               echo' <a href="index.php?act=dell_sob&amp;st='.$i.'&amp;'.SID.'">Удалить</a>';
            }
            echo'</div>';
         }
         ++$i;
      }
      
      //конец новой навигации
      $asd2 = ceil($nom / $navchat); 
      $asd3 = "0";
      
      //навигация вперёд, назад
      if("1" < $nom_page)
      {
         $nom_previous_page = $nom_page - 1;
         echo '<a href="index.php?nom_page='.$nom_previous_page.'&amp;'.SID.'">Назад</a>';
      }else{ echo 'Назад'; }
      echo'|';
      if($asd2 > $nom_page)
      {
         $nom_next_page = $nom_page + 1;
         echo '<a href="index.php?nom_page='.$nom_next_page.'&amp;'.SID.'">Далее</a>';
      }else{ echo 'Далее'; }
      
      
      //============================================//
      $chat_count = file("../data/chat/count.dat");
      echo'<br><B>Всего сообщений '.$chat_count[0].'</B><br>';
      
      
      
      
      
      
      
      
      ///////////////////Код для автоудаления старых постов
      if($nom >= "150")//если постов больше 150, то чистим:)
      {
         $str = file("../data/chat/chat.dat");
         $nom=count($str);
         $file_chat = fopen("../data/chat/chat.dat", "w+");
         flock ($file_chat,LOCK_EX);
         
         $i = "50";//удаляем последние 50 постов
         $var = $nom;
         while($i <= $var)
         {
            fputs($file_chat,$str[$i]);
            ++$i;
         }
         flock ($file_chat,LOCK_UN);
         fclose($file_chat);
         @chmod("../data/chat/chat.dat", 0666);
      }
      
      
      
      echo'<hr size="2" width="100%">';
      echo'&#187;<a href="index.php?act=dobsob&amp;'.SID.'">Добавить</a><br>';
      echo'&#187;<a href="../index.php?'.SID.'">Главная</a><br>';
   }
   
   if($act=='dobsob')
   {
      if(isset($_GET['if_uzer'])){$if_uzer = $_GET['if_uzer'];}
      if(isset($if_uzer)){ $if_uzer="[red]".htmlspecialchars($if_uzer)."[/red], "; }else{ $if_uzer = ""; }
      
      
      echo'<form name="forma" action="index.php" method="post">';
      echo'<INPUT TYPE="hidden" NAME="act" VALUE="end">';
      echo'Сообщение<br>';
      echo'<TEXTAREA NAME="txtsob" ROWS=3 COLS=20>'.$if_uzer.'</TEXTAREA><br>';
      echo'<input type="submit" name="" value="Написать"><br>';
      echo'</form>';
      echo'<hr size="2" width="100%">';
      echo'&#187;<a href="../pages/smiles.php?act=1&amp;'.SID.'">Смайлы</a><br>';
      echo'&#187;<a href="../pages/bb.php?'.SID.'">BB коды</a><br>';
      echo'&#187;<a href="index.php?act=index&amp;'.SID.'">Чат</a><br>';
      echo'&#187;<a href="../index.php?'.SID.'">Главная</a><br>';
   }
   
   if($act=='end')
   {
      if($txtsob=="" || "1000" <= strlen($txtsob))
      {
         echo'Не все поля заполнены или слишком длинный текст!!!<br>';
      }else{
         $ip=htmlspecialchars($_SERVER['REMOTE_ADDR']);
         $arbuz=explode("/",$_SERVER['HTTP_USER_AGENT']);
         $arbuz=htmlspecialchars($arbuz[0]);
         $login=htmlspecialchars($login);
         $txtsob=htmlspecialchars($txtsob);
         
         include("../sistem/smiles.dat");//обработали смайлами и bb кодами
         
         $login = str_replace("\r\n","",$login);
         $txtsob = str_replace("\r","",$txtsob);
         $txtsob = str_replace("\n","<br>",$txtsob);
         $dat=htmlspecialchars(date("d.m.Y H:i:s"));
         $str=''.$login.'<||>'.$dat.'<||>'.$txtsob.'<||>';
         
         if($filechat = fopen("../data/chat/chat.dat", "a+"))
         {
            flock ($filechat,LOCK_EX);
            fputs($filechat,$str."\r\n");
            flock ($filechat,LOCK_UN);
            fclose($filechat);
            @chmod("../data/chat/chat.dat", 0666);
            
            
            //Увеличели счётчик постов
            $chat_count = file("../data/chat/count.dat");
            $chat_count = $chat_count[0] + 1;
            $file_chat_count = fopen("../data/chat/count.dat", "w+");
            flock ($file_chat_count,LOCK_EX);
            fputs($file_chat_count,$chat_count);
            flock ($file_chat_count,LOCK_UN);
            fclose($file_chat_count);
            @chmod("../data/chat/count.dat", 0666);
            
            
            //добавляем количество постов
            ++$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);
            
            echo'Спасибо <B>'.$login.'</B>!<br>Ваше сообщение успешно добавлено. <a href="index.php?act=index&amp;'.SID.'">Далее</a><hr size="2" width="100%">';
            header("Location: index.php?".SID."");//мгновенная переадресация
         }else
         {
            echo'Ошибка добавления сообщения<br>';
         }
      }
      
      
      echo'&#187;<a href="index.php?act=index&amp;'.SID.'">В чат</a><br>';
      echo'&#187;<a href="../index.php?'.SID.'">Главная</a><br>';
   }
   
   if($act=='dell_sob')
   {
      if(isset($_GET['st'])){$st = $_GET['st'];}
      if($status=="moder" || $status=="admin")
      {
      	 $str = file("../data/chat/chat.dat");
         $str=array_reverse($str);//перевернули масив
         $nom=count($str)-1;
         //функция удаления строки
         $str[$st] =str_replace($str[$st],"",$str[$st]);
         $str=array_reverse($str);//перевернули масив в исходное состояние
         
         $i='0';
         $var=$nom;
         
         $file_chat = fopen("../data/chat/chat.dat", "w+");
         flock ($file_chat,LOCK_EX);
         while($i <= $var)
         {
            fputs($file_chat,$str[$i]);
            ++$i;
         }
         flock ($file_chat,LOCK_UN);
         fclose($file_chat);
      	 @chmod("../data/chat/chat.dat", 0666);
      	 
      	 
      	 //уменьшили счётчик постов
         $chat_count = file("../data/chat/count.dat");
         $chat_count = $chat_count[0] - 1;
         $file_chat_count = fopen("../data/chat/count.dat", "w+");
         flock ($file_chat_count,LOCK_EX);
         fputs($file_chat_count,$chat_count);
         flock ($file_chat_count,LOCK_UN);
         fclose($file_chat_count);
      	 @chmod("../data/chat/count.dat", 0666);
      	 
      	 
      	 echo'Сообщение удалено<br>';
      	 
      	 echo'&#187;<a href="index.php?act=index&amp;'.SID.'">В чат</a><br>';
         echo'&#187;<a href="../index.php?'.SID.'">Главная</a><br>';
      }
   }
   
   
}

if($status=="gost")
{
   echo'<div class="razd"><B>Ошибка</B></div>';
   echo'Чат доступен только зарегистрированным пользователям<br><a href="../index.php?'.SID.'">Главная</a><br>';
}

if($status=="ban")
{
   echo'<div class="razd"><B>Ошибка</B></div>';
   echo'Вам сюда нельзя<br>';
}

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