Просмотр файла pages/privat.php

Размер файла: 16.66Kb
<?php
//автор - figura
//сайт - http://f-pt.ru
include("../sistem/cfg.dat");
include("../sistem/global.dat");
include("../temes/$teme/verh.dat");
$nav_privat = "10";//временно

if($status=="uzer" || $status=="moder" || $status=="admin")
{
   if(empty($act)){$act="index";}
   if($act=="index")
   {
      echo'<div class="razd"><B>Мои сообщения</B></div>';
      if(file_exists("../data/privat/new-$login.dat")){ unlink("../data/privat/new-$login.dat"); }
      
      
      //вывод сообщений в привате
      $str = file("../data/privat/$login.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 * $nav_privat;
      $var = $i+$nav_privat;
      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">';
            echo'<div class="sob">'.$arrr[1].' <a href="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="privat.php?act=add&amp;if_uzer='.$arrr[0].'&amp;'.SID.'">Ответить</a> <a href="privat.php?act=dell_sob&amp;st='.$i.'&amp;'.SID.'">Удалить</a><br>';
            echo'</div>';
         }
         ++$i;
      }
      
      
      //конец новой навигации
      $asd2 = ceil($asd / $nav_privat);
      $asd3 = "0";
      
      //навигация вперёд, назад
      if("1" < $nom_page)
      {
         $nom_previous_page = $nom_page - 1;
         echo '<a href="privat.php?act=index&amp;nom_page='.$nom_previous_page.'&amp;'.SID.'">Назад</a>';
      }else{ echo 'Назад'; }
      echo'|';
      if($asd2 > $nom_page)
      {
         $nom_next_page = $nom_page + 1;
         echo '<a href="privat.php?act=index&amp;nom_page='.$nom_next_page.'&amp;'.SID.'">Далее</a>';
      }else{ echo 'Далее'; }
      
      echo'<br>';
      
      //навигация по номерам страниц
      while(++$asd3 <= $asd2)
      {
         
         if($nom_page == $asd3)
         {
            echo'<b>('.$asd3.')</b> ';
         }else
         {
            echo'<a href="privat.php?act=index&amp;nom_page='.$asd3.'&amp;'.SID.'">'.$asd3.'</a> ';
         }
         
      }
      
      
      //============================================//
      echo'<br>Всего сообщений <B>'.count($str).'</B><br>';
      echo '<div class="link"><a href="privat.php?act=add&amp;'.SID.'">Написать сообщение</a></div>';
      echo '<div class="link"><a href="privat.php?act=out&amp;'.SID.'">Исходящие сообщение</a></div>';
      
      //==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==
      
      ///////////////////Код для автоудаления старых постов
      if($nom >= "150")//если постов больше 150, то чистим:)
      {
         $str = file("../data/privat/$login.dat");
         $nom=count($str);
         $file_privat = fopen("../data/privat/$login.dat", "w+");
         flock ($file_privat,LOCK_EX);
         
         $i = "49";//удаляем последние 50 постов
         $var = $nom;
         while($i <= $var)
         {
            fputs($file_privat,$str[$i]);
            ++$i;
         }
         flock ($file_privat,LOCK_UN);
         fclose($file_privat);
         @chmod("../data/privat/$login.dat", 0666);
      }
      
      $nom=count(file("../data/privat/out-$login.dat"));
      
      ///////////////////Код для автоудаления старых постов
      if($nom >= "150")//если постов больше 150, то чистим:)
      {
         $str = file("../data/privat/out-$login.dat");
         $nom=count($str);
         $file_privat = fopen("../data/privat/out-$login.dat", "w+");
         flock ($file_privat,LOCK_EX);
         
         $i = "49";//удаляем последние 50 постов
         $var = $nom;
         while($i <= $var)
         {
            fputs($file_privat,$str[$i]);
            ++$i;
         }
         flock ($file_privat,LOCK_UN);
         fclose($file_privat);
         @chmod("../data/privat/out-$login.dat", 0666);
      }
      //==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==//==
   }
   
   
   if($act=="out")
   {
      echo'<div class="razd"><B>Исходящие письма</B></div>';
      
      //вывод сообщений в привате
      $str = file("../data/privat/out-$login.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 * $nav_privat;
      $var = $i+$nav_privat;
      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">';
            echo'<div class="sob">'.$arrr[1].' Для <a href="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="privat.php?act=dell_out_sob&amp;st='.$i.'&amp;'.SID.'">Удалить</a><br>';
            echo'</div>';
         }
         ++$i;
      }
      
      
      
      //конец новой навигации
      $asd2 = ceil($nom / $nav_privat); 
      $asd3 = "0";
      
      //навигация вперёд, назад
      if("1" < $nom_page)
      {
         $nom_previous_page = $nom_page - 1;
         echo '<a href="privat.php?act=out&amp;nom_page='.$nom_previous_page.'&amp;'.SID.'">Назад</a>';
      }else{ echo 'Назад'; }
      echo'|';
      if($asd2 > $nom_page)
      {
         $nom_next_page = $nom_page + 1;
         echo '<a href="privat.php?act=out&amp;nom_page='.$nom_next_page.'&amp;'.SID.'">Далее</a>';
      }else{ echo 'Далее'; }
      
      echo'<br>';
      
      //навигация по номерам страниц
      while(++$asd3 <= $asd2)
      {
         
         if($nom_page == $asd3)
         {
            echo'<b>('.$asd3.')</b> ';
         }else
         {
            echo'<a href="privat.php?act=out&amp;nom_page='.$asd3.'&amp;'.SID.'">'.$asd3.'</a> ';
         }
         
      }
      
      
      
      
      
      //============================================//
      echo'<br>Всего сообщений <B>'.count($str).'</B><br>';
      echo '<div class="link"><a href="privat.php?act=add&amp;'.SID.'">Написать сообщение</a></div>';
      echo '<div class="link"><a href="privat.php?act=index&amp;'.SID.'">Принятые сообщения</a></div>';
   }
   
   
   if($act=="dell_sob")
   {
      echo'<div class="razd"><B>Удаление</B></div>';
      if(isset($_GET['st'])){$st = $_GET['st'];}
            //удаляем сообщение
            $str = file("../data/privat/$login.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_privat = fopen("../data/privat/$login.dat", "w+");
            flock ($file_privat,LOCK_EX);
            while($i <= $var)
            {
               fputs($file_privat,$str[$i]);
               ++$i;
            }
            flock ($file_privat,LOCK_UN);
            fclose($file_privat);
            @chmod("../data/privat/$login.dat", 0666);
      echo'Сообщение удалено<br>';
      echo'<a href="privat.php?act=index&amp;'.SID.'">Далее</a><br>';
      
      
   }
   
   if($act=="add")
   {
      echo'<div class="razd"><B>Новое сообщение</B></div>';
      if(isset($_GET['if_uzer'])){$if_uzer = $_GET['if_uzer'];}
      if(empty($if_uzer)){$if_uzer = "";}
      $if_uzer=htmlspecialchars($if_uzer);
      echo'<form name="forma" action="privat.php?'.SID.'" method="post">
<INPUT TYPE="hidden" NAME="act" VALUE="add2">
Кому<br>
<input type="text" name="if_uzer" value="'.$if_uzer.'" size="10" maxlength="15"><br>
Сообщение<br>
<TEXTAREA NAME="txtsob" ROWS=3 COLS=20></TEXTAREA><br>
<input type="submit" name="" value="Написать"><br>
</form>';
      
      echo'<div class="link"><a href="../pages/smiles.php?act=1&amp;'.SID.'">Смайлы</a></div>';
      echo'<div class="link"><a href="../pages/bb.php?'.SID.'">BB коды</a></div>';
      echo'<div class="link"><a href="privat.php?act=index&amp;'.SID.'">К сообщениям</a></div>';
   }
   
   if($act=="add2")
   {
      
      //echo'<div class="razd"><B>Новое сообщение</B></div>';
      //начинаем проверять правильность ввода
      if(isset($_POST['if_uzer'])){$if_uzer = $_POST['if_uzer'];}
      if(isset($_POST['txtsob'])){$txtsob = $_POST['txtsob'];}
      if($if_uzer == "" || $txtsob == "" || "1000" <= strlen($txtsob))
      {
         echo'<div class="razd"><B>Ошибка</B></div>';
         echo'Не все поля заполнены или слишком длинный текст. Текст не должен превышать 1000 символов.<br>';
      }else{
         $if_uzer=htmlspecialchars($if_uzer);
         $txtsob=htmlspecialchars($txtsob);
         if($login != $if_uzer)
         {
            if(file_exists("../data/uzer/$if_uzer.dat"))
            {
               //место для включения смайлов
               include("../sistem/smiles.dat");
               $txtsob = str_replace("\r","",$txtsob);//обработали переносы строк
               $txtsob = str_replace("\n","<br>",$txtsob);//обработали переносы строк
               
               
               $dat=htmlspecialchars(date("d.m.y H:i"));
               $str=''.$login.'<||>'.$dat.'<||>'.$txtsob.'<||>';
               if($file_privat = fopen("../data/privat/$if_uzer.dat", "a+"))
               {
                  flock ($file_privat,LOCK_EX);
                  fputs($file_privat,$str."\r\n");
                  flock ($file_privat,LOCK_UN);
                  fclose($file_privat);
                  @chmod("../data/privat/$if_uzer.dat", 0666);
                  
                  echo'<div class="razd"><B>Сообщение отправлено</B></div>';
                  echo'Спасибо <B>'.$login.'</B>!<br>Ваше сообщение успешно отправлено.<br>';
                  $file_new_privat = fopen("../data/privat/new-$if_uzer.dat", "w+");
                  fputs($file_new_privat,"");
                  fclose($file_new_privat);
                  @chmod("../data/privat/new-$if_uzer.dat", 0666);
                  
                  //зписываем исходящее сообщение
                  $str=''.$if_uzer.'<||>'.$dat.'<||>'.$txtsob.'<||>';
                  if($file_out_privat = fopen("../data/privat/out-$login.dat", "a+"))
                  {
                     flock ($file_out_privat,LOCK_EX);
                     fputs($file_out_privat,$str."\r\n");
                     flock ($file_out_privat,LOCK_UN);
                     fclose($file_out_privat);
                     @chmod("../data/privat/out-$login.dat", 0666);
                  }
                  
                  
               }else{
                  echo'<div class="razd"><B>Ошибка</B></div>';
                  echo'Ошибка отправки сообщения<br>';
               }
            }else{
               echo'<div class="razd"><B>Ошибка</B></div>';
               echo'Пользователь с логином <B>'.$if_uzer.'</B> удалён, или не зарегистрирован!<br>';
            }
         }else{
            echo'<div class="razd"><B>Ошибка</B></div>';
            echo'Нельзя отправлять письма самому себе!<br>';
         }
      }
      
      echo'<a href="privat.php?act=index&amp;'.SID.'">Далее</a><br>';
   }
   
   if($act=="dell_out_sob")
   {
      echo'<div class="razd"><B>Удаление</B></div>';
      if(isset($_GET['st'])){$st = $_GET['st'];}
            //удаляем сообщение
            $str = file("../data/privat/out-$login.dat");
            $str=array_reverse($str);//перевернули масив
            $nom=count($str)-1;
            //функция удаления строки
            $str[$st] =str_replace($str[$st],"",$str[$st]);
            $str=array_reverse($str);//перевернули масив в исходное состояние
            
            $i='-1';
            $var=$nom;
            
            $file_out_privat = fopen("../data/privat/out-$login.dat", "w+");
            flock ($file_out_privat,LOCK_EX);
            while($i <= $var)
            {
               fputs($file_out_privat,$str[$i]);
               ++$i;
            }
            flock ($file_out_privat,LOCK_UN);
            fclose($file_out_privat);
            @chmod("../data/privat/out-$login.dat", 0666);
            
      echo'Сообщение удалено<br>';
      echo'<a href="privat.php?act=out&amp;'.SID.'">Далее</a><br>';
      
      
   }
   
   
   
   
}
if($status=="gost")
{
   echo'<div class="razd"><B>ОШИБКА</B></div>';
   echo'Вы не авторизированы<br>';
   echo'<a href="../pages/rega.php?'.SID.'">Регистрация</a><br>';
   echo'<a href="../pages/avtoriza.php?'.SID.'">Вход</a><br>';
}
if($status=="ban" )
{
   echo'Ваш акаунт временно заблокирован, причины ниже<br>';
   echo'<B>'.$prichina_bana.'</B><br><br>В данный момент вы можете только находиться на главной странице, или зарегистрировать себе другой акаунт. ЗНАЙТЕ, ЕСЛИ НАРУШЕНИЯ С ВАШЕЙ СТОРОНЫ НЕ ПРЕКРАТЯТСЯ, ТО ДОСТУП К САЙТУ ВАМ БУДЕТ ЗАКРЫТ ПОЛНОСТЬЮ!!!<br>';
}

echo'<hr size="2" width="100%">';
echo'<a href="../index.php?'.SID.'">Главная</a><br>';
include("../sistem/global_end.dat");
include("../temes/$teme/niz.dat");
?>