Просмотр файла template/rprivat.php

Размер файла: 13.64Kb
<?php

/************************************************/
//    show reply mod. by demeros                            //
/************************************************/



if (!defined("BASEDIR")) { header("Location:../index.php"); exit; }

/*----------Текущая версия скрипта------------*/
$rprivat_version='FINAL';


/*------------Проверяем какой макс размер можно выгружать--------*/
$upload_max_filesize=ini_get('upload_max_filesize');
     if (eregi('([0-9]*)([A-z]*)',$upload_max_filesize,$varrs))
     {
     if ($varrs[2]=='M')$upload_max_filesize=$varrs[1]*1048576;
     elseif ($varrs[2]=='K')$upload_max_filesize=$varrs[1]*1024;
     elseif ($varrs[2]=='G')$upload_max_filesize=$varrs[1]*1024*1048576;
     }
	 $fsizz=$upload_max_filesize/1024;
	 
	 
/*--------------Форма для быстрого ответа----------------*/
$form='<form method="post" action="addpriv.php?'.SID.'">
<input class="mess" name="mess" size="25"/>';


/*---------Настройки скрипта---------*/
$rprivat_text=file(BASEDIR."local/rprivat.dat");
if ($rprivat_text){
$rprivat_data=explode("|",$rprivat_text[0]);
$config_reply_privat = $rprivat_data[0];         # Вкл/Выкл "В ответ на:" для привата   
$config_add_privat_data=$rprivat_data[1];        # Разрешать прикрепление файлов
$config_zip_privat=$rprivat_data[2];             #Архивировать файлы?
$config_fast_answer=$rprivat_data[3];            #Быстрый ответ
$config_add_privat_fsize=$rprivat_data[4];       #Размер файла в кб
$config_add_privat_fpath='../'.$rprivat_data[5];       #Куда сохранять файлы
$config_add_privat_uball=$rprivat_data[6];       #Количество балов
$config_type=$rprivat_data[7];                   #Допустимые расширения
$config_savetime_privat=$rprivat_data[8];        #Сколькло дней хранить файлы
$config_users_quote=$rprivat_data[9];            #Место под файлы
$config_privat_style=$rprivat_data[10];          #Формат писем
$config_sys_nick=$rprivat_data[11];              #System message
$config_dell_checked=$rprivat_data[12];          #вкл/выкл удалять выбраное
$config_privat_antireklama=$rprivat_data[13];    #Проверка на рекламу
$config_privat_checkers=$rprivat_data[14];       #Ники проверяющих
}else {echo '<b>Ошибка! Не установлены настройки привата! Проверте файл local/rprivat.dat</b>'; exit;}
 


/*--------Сообщения ошибок----------*/
if(isset($_GET['error'])){
$kol=(int)$_GET['kol'];
$error=$_GET['error'];

if ($error=="ferr"){
echo '<div align="center"><font color="#FF0000"><b>Ошибка при загрузке файла</b></font><br></div>';}

if ($error=="extention"){
echo '<div align="center"><font color="#FF0000"><b>Запрещенный формат файлов</b></font><br></div>';}

if ($error=="nodir"){
echo '<div align="center"><font color="#FF0000"><b>ОШИБКА! Неверно выбрана директория,сообщите администрации !</b></font><br></div>';}

if ($error=="fbig"){
echo '<div align="center"><font color="#FF0000"><b>Превышен лимит размера файла</b></font><br></div>';}

if ($error=="sended"){
echo '<div align="center"><font color="#FF0000"><b>Разослано писем : '.$kol.'!</b></font><br></div>';}

if ($error=="nadd"){
echo '<div align="center"><font color="#FF0000"><b>Нет кому отправлять,а самому себе-нельзя))!</b></font><br></div>';}

if ($error=="noadm"){
echo '<div align="center"><font color="#FF0000"><b>Ошибка,не обнаружен файл local/datatmp/adminlist.dat или local/datatmp/userlist.dat!</b></font><br></div>';}

if ($error=="fullsavemail")
{echo '<div align="center"><font color="#FF0000"><b>Ваш ящик переполнен</b></font><br></div>';}

if ($error=="copy")
{echo '<div align="center"><font color="#FF0000"><b>Вы уже сохраняли это письмо!</b></font><br></div>';}

if ($error=="saved")
{echo '<div align="center"><font color="#FF0000"><b>Письмо успешно сохранено!</b></font><br></div>';}

if ($error=="managed")
{echo '<div align="center"><font color="#FF0000"><b>Файл был удален!</b></font><br></div>';}

if ($error=="nofile")
{echo '<div align="center"><font color="#FF0000"><b>Файл с таким именем не обнаружен!</b></font><br></div>';}

}

/*-------Функция для админки----------*/
function users_files(){
global $config_add_privat_fsize,$fsizz;
if($fsizz<$config_add_privat_fsize)
{$fpremission=2;}
elseif($config_add_privat_fsize>0 && $config_add_privat_fsize<5)
{$fpremission=3;}
elseif($fsizz>=$config_add_privat_fsize){
$fpremission=1;}
return $fpremission;
}

/*-----Фция для рассылки привата-------*/
function spam_add($nik,$mess,$log,$sitetime,$pol,$fname)
{global $config_userprofkey,$config_limitsmail,$config_priv;
if($pol==2 or $pol==3){
$ufile = file(BASEDIR."local/profil/$nik.prof"); 
$udata = explode(":||:",$ufile[0]);
if($udata[15]=="N"){$pol1=1;}
if($udata[15]=="M"){$pol1=2;}
if($udata[15]=="Ж"){$pol1=3;}
if($pol==$pol1){$todego=TRUE;}
}elseif($pol==1){$todego=TRUE;}

if($todego==TRUE){
$filesize= filesize("../local/privat/$nik.$config_priv");
$filesize=round($filesize/1024,2);
$pers=round($filesize*100/$config_limitsmail);
if($pers>="99"){$acs="1";}
if($acs!="1")
{$rep="";
$tex=$log.'|'.$mess.'|'.$sitetime.'|'.$rep.'|1|'.$fname.'|'; 
$tex=preg_replace ("|[\r\n]+|si","",$tex);
$ufile = file(BASEDIR."local/profil/$nik.prof"); 
$udata = explode(":||:",$ufile[0]);

$udata[10]++;
for ($u=0; $u<$config_userprofkey; $u++){
$utext.=$udata[$u].':||:';}

if($udata[0]!="" && $udata[1]!="" && $udata[4]!="" && $utext!=""){
$fp=fopen(BASEDIR."local/profil/$nik.prof","a+");  
flock ($fp,LOCK_EX); 
ftruncate ($fp,0);                                                              
fputs($fp,$utext);
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);  
unset($utext);	 

$fp=fopen(BASEDIR."local/privat/$nik.$config_priv","a+");  
flock ($fp,LOCK_EX);                                                              
fputs($fp,"$tex\r\n");
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp); 
}
}
}
return $todego;
}
/*-----------Функция определения прочитано ли письмо------------*/
function is_read  ($log,$uz,$time,$type)
{global $config_priv,$sitetime;
if($type==$config_priv){
$file = file("../local/dataoutput/$uz.$config_priv");
$fp=fopen("../local/dataoutput/$uz.$config_priv","r+");
$total = count($file);
flock ($fp,LOCK_EX);
for($i=0;$i<$total;$i++)
{$ud=explode("|",$file[$i]);
if($ud[0]==$log && $ud[2]==$time)
{
$tex2=$log.'|'.$ud[1].'|'.$ud[2].'|0|'.$sitetime.'|'.$ud[5].'|'; 
$tex2=preg_replace ("|[\r\n]+|si","",$tex2);
$file[$i]="$tex2\r\n";
}}
fputs($fp,implode("",$file));
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);  
chmod ($fp, 0666);
chmod (BASEDIR."local/dataoutput/$uz.$config_priv", 0666);
}
$file = file("../local/privat/$log.$type");
$fp=fopen("../local/privat/$log.$type","r+");
$total = count($file);
flock ($fp,LOCK_EX);
for($i=0;$i<$total;$i++)
{$ud=explode("|",$file[$i]);
if($ud[0]==$uz && $ud[2]==$time && $ud[4]=="1")
{
$tex=$uz.'|'.$ud[1].'|'.$ud[2].'|'.$ud[3].'|0|'.$ud[5].'|';
$tex=preg_replace ("|[\r\n]+|si","",$tex);
$file[$i]="$tex\r\n";}}
fputs($fp,implode("",$file));
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);  
chmod ($fp, 0666);
chmod (BASEDIR."local/privat/$log.$type", 0666);
}

/*ПРоверка входящих файлов*/

function filep ($namef)
{global $config_add_privat_fpath;


if(is_file("$config_add_privat_fpath/$namef"))/*Если файл не был удален*/
	    {
if(!stristr($filesn[0],"php") && !stristr($filesn[0],"htm") && !stristr($filesn[0],"inc") && !stristr($filesn[0],"wml"))/*еще одна проверка*/
 { $arra=explode(".",$namef);
   $tt=count($arra);
   $nn=$arra[1];
   for($i=2;$i<$tt;$i++)
   {$namef1.='.'.$arra[$i];}
   $allt=''.$arra[1].''.$namef1.'';
   if($arra[0]=="system_mail"){$name='<a href="privat_file.php?name1='.$allt.'&amp;'.SID.'">Прикрепленный файл</a><br>';}else{
  $name='<a href="privat_file.php?name='.$allt.'">Прикрепленный файл</a><br>';}
  
 }
  else
 {$name='В имени файла присутствуют запрещенные слова!';}
       }
else{$name='<font color="red">Файл был удален</font>';}
return $name;
} 


/*Автоопределение браузера*/

function browser_detectt($login,$mesr)
{global $config_reply_privat;
 if($config_reply_privat=="1")/*Если включено цитирование*/
	    {$string='<a href="privat.php?action=files&amp;uz='.$login.'&amp;mesr='.$mesr.'&amp;'.SID.'">Отправить файл</a> | ';}
		else/*Если цитирование выключено*/
		{$string='<a href="privat.php?action=files&amp;uz='.$login.'&amp;'.SID.'">Отправить файл</a> | ';}
return $string;
}
/*Функция антирекламы*/
function antireklamap($string,$sitetime,$rep,$log,$uz){
global $config_privat_checkers,$config_priv,$config_servername,$config_sys_nick,$config_userprofkey;
$string=base64_decode($string);
if(empty($config_sys_nick)){$config_sys_nick=$config_servername;}
$arr_mat=array("http","//",":/","wap","w w","ww","web",".ru",".ne",".su",".cn",".or","h t t p","/ /",": /","w a p","w e b",". r u",". n e",". s u",". c n",". o r");
foreach($arr_mat as $value){
if($value!=""){
if(preg_match("|$value|iu",$string))
{$reklama=1;}
}}

if($reklama==1)
{$checkers=explode(",",$config_privat_checkers);
$string='Юзер [url=http://'.$config_servername.'/pages/anketa.php?uz='.$log.']'.$log.'[/url] ,Подозревается в рекламе!!! Текст сообщения для юзера [url=http://'.$config_servername.'/pages/anketa.php?uz='.$uz.']'.$uz.'[/url]  : [red]'.$string.'[/red]';
$tex=''.$config_sys_nick.'|'.base64_encode($string).'|'.$sitetime.'|'.$rep.'|1||';
foreach($checkers as $value)
{if($value!=$log && $value!=$uz){
$fp=fopen(BASEDIR."local/privat/$value.sys","a+");  
flock ($fp,LOCK_EX);                                                              
fputs($fp,"$tex\r\n");
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);

$ufile = file(BASEDIR."local/profil/$value.prof"); 
$udata = explode(":||:",$ufile[0]);
$udata[10]++;
for ($u=0; $u<$config_userprofkey; $u++){
$utext.=$udata[$u].':||:';}

if($udata[0]!="" && $udata[1]!="" && $udata[4]!="" && $utext!=""){
$fp=fopen(BASEDIR."local/profil/$value.prof","a+");  
flock ($fp,LOCK_EX); 
ftruncate ($fp,0);                                                              
fputs($fp,$utext);
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);  
unset($utext);
}
}
}
}


}

function checkers($log)/*Проверяющие рекламу в привате*/
{global $config_privat_checkers; 
$checkers=explode(",",$config_privat_checkers);
foreach($checkers as $value)
{if(strstr($value,$log))
{return TRUE;}
else
{return FALSE;}
}
}

function user_output($log)/*Щетчик исходящих*/
{global $config_priv;
$file=file(BASEDIR."local/dataoutput/$log.$config_priv");
$total=count($file);
foreach($file as $value)
{$aa=explode("|",$value);
if($aa[3]=="1")
{$all++;}
}
if(empty($all))
{$all="0";}
$all_privat=(int)$all.'/'.(int)$total;
return $all_privat;
}

function user_saved($log)/*Щетчик сохраненных*/
{global $config_priv;
$all_privat = counter_string(BASEDIR."local/privat/$log.save");
return (int)$all_privat;
}

function user_system($log)/*Щетчик системных*/
{global $config_priv;

$file=file(BASEDIR."local/privat/$log.sys");
$total=count($file);
foreach($file as $value)
{$aa=explode("|",$value);
if($aa[4]=="1")
{$all++;}
}
if(empty($all))
{$all="0";}
$all_privat=(int)$all.'/'.(int)$total;
return $all_privat;
}


function search_ing($name)
{$ifadmin = file(BASEDIR."local/datatmp/adminlist.dat");
foreach($ifadmin as $value)
{$ainfo=explode("|",$value);
$names[]=$ainfo[1];
}
if(!in_array($name,$names)){
return TRUE;}
else{return FALSE;}
}

function defence_go($mess,$uz)
{global $sitetime;
$text = file(BASEDIR."local/profil/$uz.prof"); 
if(is_file(BASEDIR."local/datatmp/tmp_log.dat")){
$file=fopen(BASEDIR."local/datatmp/tmp_log.dat","r+");}else
{$file=fopen(BASEDIR."local/datatmp/tmp_log.dat","w");}
$file1=file(BASEDIR."local/datatmp/tmp_log.dat");
flock ($fp,LOCK_EX);
$qwerty=file_get_contents(BASEDIR."local/datatmp/def.dat");
$qwerty=base64_decode($qwerty);
$mess=base64_decode($mess);
if ($text!="")
{$uzdata = explode(":||:",$text[0]);
for($i=0;$i<count($file1);$i++)
{$vall=explode("|",$file1[$i]);
if($vall[0]==$uz)
{$tt=1;
if( ((($uzdata[36]-$vall[1])>=50 || $uzdata[36]==50 ) && ($uzdata[36]!=$vall[1]) ) || ($sitetime>=($vall[2]+(168*3600))) )
{if(($vall[1]-$uzdata[36])<0){$vall[1]=$uzdata[36];}
$mess=''.$mess.''.$qwerty.'';
$tex2=$uz.'|'.$vall[1].'|'.$sitetime.'|'; 
$tex2=preg_replace ("|[\r\n]+|si","",$tex2);
$file1[$i]="$tex2\r\n";
}
}}
if($tt!=1){
$tex2=$uz.'|'.$uzdata[36].'|'.$sitetime.'|'; 
$tex2=preg_replace ("|[\r\n]+|si","",$tex2);
fputs($file,"$tex2\r\n");}
fputs($file,implode("",$file1));
fflush ($file);
flock ($file,LOCK_UN);
fclose($file);  
chmod ($file, 0666);
}
return base64_encode($mess);
}




?>