<?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.'&'.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&uz='.$login.'&mesr='.$mesr.'&'.SID.'">Отправить файл</a> | ';}
else/*Если цитирование выключено*/
{$string='<a href="privat.php?action=files&uz='.$login.'&'.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);
}
?>