Файл: a2345/function.php
Строк: 325
<? /////andrey69rus
////////////////////////////////////noflood//////////////////////////
$nf_path=$_SERVER['DOCUMENT_ROOT'].'/tmp/';
$nf_fip=$nf_path.$_SERVER['REMOTE_ADDR'];
$nf_fcron=$nf_path.'.time';
$nf_flood=array(
10 => 10, // не более 10 загрузок за 10 секунд
60 => 30, // не более 30 загрузок за минуту
300 => 50, // не более 50 загрузок за 5 минут
3600 => 200, // не более 200 загрузок за час
);
$nf_cron_run=1200; // раз в сколько секунд проверять старые файлы
$nf_old_file=7200; // через сколько секунд считать файл старым (и удалять)
function cron_update($fn,$update) {
if (!file_exists($fn)) {
if (!@touch($fn)) {
echo 'Не могу создать <strong>'.basename($fn).'</strong>, проверьте права на файлы (w+)<br/>';
return -1;
}
}
else {
if (time()-filemtime($fn)<$update) {return 0;}
}
$f=@fopen($fn,'r+');
if (!$f) {
echo 'Не могу открыть <strong>'.basename($fn).'</strong>, проверьте права на файлы (r+)<br/>';
return -1;
}
if (!flock($f,6)) {return;}
$text=fgets($f,100);
if (time()-intval($text)<$update) {return 0;}
fseek($f,0,SEEK_SET);
fwrite($f,time().' ');
fclose($f);
return 1;
}
$nf_cron_code=cron_update($nf_fcron,$nf_cron_run);
if ($nf_cron_code==-1) return;
if ($nf_cron_code==1) {
if ($nf_dir=@opendir($nf_path)) {
$nf_time=time()-$nf_old_file;
while (($nf_tmp=readdir($nf_dir))!==false) {
if ($nf_tmp[0]=='.') continue;
if (filemtime($nf_path.$nf_tmp)<$nf_time &&
preg_match("!^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$!",$nf_tmp))
{
if (!unlink($nf_path.$nf_tmp)) {
echo 'Не могу удалить <trong>'.$nf_tmp.'</strong><br/>';
}
}
}
closedir($nf_dir);
}
}
unset($nf_cron_code);
if (file_exists($nf_fip)) {
$nf_f=@fopen($nf_fip,'r+');
if (!flock($nf_f,6)) exit('Parallel processing disable.');
if (!$nf_f) {
echo 'Не могу открыть <strong>'.basename($nf_fip).'</strong> (r+)<br/>';
return;
}
$nf_buf=fgets($nf_f,1000);
$nf_buf=explode('|',$nf_buf);
}
else {
for($nf_i=0; $nf_i<count($nf_flood)*2; $nf_i++) $nf_buf[]=0;
$nf_f=@fopen($nf_fip,'a+');
if (!$nf_f) {
echo 'Не могу создать <strong>'.basename($nf_fip).'</strong> (a+)<br/>';
return;
}
if (!flock($nf_f,6)) exit('Parallel processing disable.');
}
$nf_i=0;
$nf_stopflag=0;
foreach ($nf_flood as $nf_k=>$nf_v) {
if ($nf_buf[$nf_i+1]+$nf_k<time()) {
$nf_buf[$nf_i]=1;
$nf_buf[$nf_i+1]=time();
}
else {
if ($nf_buf[$nf_i]>$nf_v) {
$nf_stopflag=1;
$nf_buf[$nf_i+1]=time();
}
$nf_buf[$nf_i]++;
}
$nf_i+=2;
}
ftruncate($nf_f,0);
fseek($nf_f,0);
fputs($nf_f,implode('|',$nf_buf));
if ($nf_stopflag) exit('Flood detect!');
unset($nf_f);
unset($nf_i);
unset($nf_k);
unset($nf_v);
unset($nf_stopflag);
unset($nf_buf);
unset($nf_fip);
unset($nf_path);
unset($nf_flood);
unset($nf_cron_run);
unset($nf_cron_idle);
////////////////////////////////////////////////////////////////
function user($id)
{
$ank = mysql_fetch_array(mysql_query("SELECT * FROM `user` WHERE `id` = '$id'"));
if($ank['date'] < (time()-600)) $tut = '';
elseif($ank['date'] < (time()-60))
{$tut='<span class="cGrey">*</span>';
}else{
$tut = '';
}
return "<img src='/img/user".($ank['date'] <= time()-600?"off":null).".png'> <a href='/$id'>$ank[name]</a><span class='c".($ank['status']==0?"'>":null)."".($ank['status']==2?"Moder'>[m]":null)."".($ank['status']==3?"Admin'>[a]":null)."</span>".$tut."";
}
/////////////////////////////////////////////
function gr($id)
{
$gr = mysql_fetch_array(mysql_query("SELECT * FROM `groups` WHERE `id` = '$id'"));
return "<img src='img/group.png'> <a href='/group_$id'>$gr[name]</a> <small> Ур.$gr[lvl]</small>";
}
/////////////////////////////////////////////
function page($k_page=1){ // Выдает текущую страницу
$page=1;
if (isset($_GET['page'])){
if ($_GET['page']=='end')$page=intval($k_page);elseif(is_numeric($_GET['page'])) $page=intval($_GET['page']);}
if ($page<1)$page=1;
if ($page>$k_page)$page=$k_page;
return $page;}
function k_page($k_post=0,$k_p_str=15){ // Высчитывает количество страниц
if ($k_post!=0){$v_pages=ceil($k_post/$k_p_str);return $v_pages;}
else return 1;}
function str($link='?',$k_page=1,$page=1){ // Вывод номеров страниц (только на первый взгляд кажется сложно ;))
if ($page<1)$page=1;
echo'<div class="umenu"><div class="page">';
if ($page!=1)echo " <a href="".$link."page=1" title='Страница №1' class='button_one'>1</a> ";
else echo " <b>1</b> ";
for ($ot=-3; $ot<=3; $ot++){
if ($page+$ot>1 && $page+$ot<$k_page){
if ($ot==-3 && $page+$ot>2)echo " .. ";
if ($ot!=0)echo " <a href="".$link."page=".($page+$ot)."" title='Страница №".($page+$ot)."' class='button_one'>".($page+$ot)."</a> ";
else echo " <b>".($page+$ot)."</b> ";
if ($ot==3 && $page+$ot<$k_page-1)echo " .. ";}}
if ($page!=$k_page)echo " <a href="".$link."page=end" title='Страница №$k_page' class='button_one'>$k_page</a> ";
elseif ($k_page>1)echo " <b>$k_page</b> ";
echo'</div></div>';
}
////////////////////////////////////////////////
function my_esc($str)
{
return mysql_real_escape_string($str);
}
/////////////////////////////////////////////
function maketime($string) {
if($string < 3600){
$string = sprintf("%02d:%02d", (int)($string / 60) % 60, $string % 60);
}else{
$string = sprintf("%02d:%02d:%02d", (int)($string / 3600) % 24, (int)($string / 60) % 60, $string % 60);
};
return $string;
};
//////////////////////////////////////////////
function err_game($msg)
{
echo "<b><div class='umenu'><img src='img/err.png' /> <span class='cRed'>$msg</span></div></b>";
}
///////////////////////////////////////////////
function msg_game($msg)
{
echo "<b><div class='umenu'><img src='img/ok.png' /> <span class='cDGreen'>$msg</span></div></b>";
}
///////////////////////////////////////////////
function vremja($time=NULL)
{
$timep="".date("j M Y в H:i", $time)."";
$time_p[0]=date("j n Y", $time);
$time_p[1]=date("H:i", $time);
if ($time_p[0]==date("j n Y"))$timep=date("H:i:s", $time);
if ($time_p[0]==date("j n Y", time()-60*60*24))$timep="Вчера в $time_p[1]";
$timep=str_replace("Jan","Янв",$timep);
$timep=str_replace("Feb","Фев",$timep);
$timep=str_replace("Mar","Марта",$timep);
$timep=str_replace("May","Мая",$timep);
$timep=str_replace("Apr","Апр",$timep);
$timep=str_replace("Jun","Июня",$timep);
$timep=str_replace("Jul","Июля",$timep);
$timep=str_replace("Aug","Авг",$timep);
$timep=str_replace("Sep","Сент",$timep);
$timep=str_replace("Oct","Окт",$timep);
$timep=str_replace("Nov","Ноября",$timep);
$timep=str_replace("Dec","Дек",$timep);
return $timep;
}
//////////////////////////////////////////////////
function br($str,$br='<br />'){return preg_replace("#((<br( ?/?)>)|n|r)+#i",$br, $str);} // переносы строк
///////////////////////////////////////////////////
function smiles($str) {
$str = preg_replace('/:)|:-)|:smile:/', '<img src="/img/smiles/smiley-smile.png" alt="Smile" />', $str);
$str = preg_replace('/:D|:-D/', '<img src="/img/smiles/smiley-grin.png" alt="Smile" />', $str);
$str = preg_replace('/:(|:-(/', '<img src="/img/smiles/smiley-sad.png" alt="Smile" />', $str);
$str = preg_replace('/;-(|;(/', '<img src="/img/smiles/smiley-cry.png" alt="Smile" />', $str);
$str = preg_replace('/;)|;-)/', '<img src="/img/smiles/smiley-wink.png" alt="Smile" />', $str);
$str = preg_replace('/8)|8-)/', '<img src="/img/smiles/smiley-cool.png" alt="Smile" />', $str);
$str = preg_replace('/=O|O_O/', '<img src="/img/smiles/smiley-eek.png" alt="Smile" />', $str);
$str = str_replace('$)', '<img src="/img/smiles/smiley-money.png" alt="Smile" />', $str);
$str = str_replace(':*', '<img src="/img/smiles/smiley-kiss.png" alt="Smile" />', $str);
$str = preg_replace('/:P/', '<img src="/img/smiles/smiley-razz.png" alt="Smile" />', $str);
$str = str_replace(':|', '<img src="/img/smiles/smiley-netural.png" alt="Smile" />', $str);
$str = preg_replace('/:Z/', '<img src="/img/smiles/smiley-sleep.png" alt="Smile" />', $str);
$str = preg_replace('/:lol:/', '<img src="/img/smiles/smiley-lol.png" alt="Smile" />', $str);
$str = preg_replace('/:rofl:/', '<img src="/img/smiles/smiley-yell.png" alt="Smile" />', $str);
$str = str_replace(':&', '<img src="/img/smiles/smiley-confuse.png" alt="Smile" />', $str);
$str = str_replace(':>', '<img src="/img/smiles/smiley-evil.png" alt="Smile" />', $str);
$str = str_replace(':@', '<img src="/img/smiles/smiley-mad.png" alt="Smile" />', $str);
$str = preg_replace('/:angel:/', '<img src="/img/smiles/smiley-angel.png" alt="Smile" />', $str);
$str = preg_replace('/:bla:/', '<img src="/img/smiles/smiley-draw.png" alt="Smile" />', $str);
$str = preg_replace('/:fat:/', '<img src="/img/smiles/smiley-fat.png" alt="Smile" />', $str);
$str = preg_replace('/:kitty:/', '<img src="/img/smiles/smiley-kitty.png" alt="Smile" />', $str);
$str = preg_replace('/:green:/', '<img src="/img/smiles/smiley-mr-green.png" alt="Smile" />', $str);
$str = str_replace('%)', '<img src="/img/smiles/smiley-nerd.png" alt="Smile" />', $str);
$str = preg_replace('/:red:/', '<img src="/img/smiles/smiley-red.png" alt="Smile" />', $str);
$str = preg_replace('/:roll:/', '<img src="/img/smiles/smiley-roll.png" alt="Smile" />', $str);
$str = preg_replace('/:sweat:/', '<img src="/img/smiles/smiley-sweat.png" alt="Smile" />', $str);
$str = preg_replace('/:slim:/', '<img src="/img/smiles/smiley-slim.png" alt="Smile" />', $str);
$str = preg_replace('/:surprise:/', '<img src="/img/smiles/smiley-surprise.png" alt="Smile" />', $str);
$str = preg_replace('/:wink:/', '<img src="/img/smiles/smiley-wink.png" alt="Smile" />', $str);
$str = str_replace('<)', '<img src="/img/smiles/smiley-twist.png" alt="Smile" />', $str);
$str = str_replace(':]', '<img src="/img/smiles/smiley-zipper.png" alt="Smile" />', $str);
return $str;
}
function output_text($str){
$str = preg_replace('/[b](.+)[/b]/isU', '<b>$1</b>', $str);
$str = preg_replace('/[u](.+)[/u]/isU', '<span style="text-decoration:underline;">$1</span>', $str);
$str = preg_replace('/[s](.+)[/s]/isU', '<s>$1</s>', $str);
$str = preg_replace('/[i](.+)[/i]/isU', '<i>$1</i>', $str);
$str = preg_replace('/[big](.+)[/big]/isU', '<span style="font-size:large;">$1</span>', $str);
$str = preg_replace('/[small](.+)[/small]/isU', '<span style="font-size:small;">$1</span>', $str);
$str = preg_replace('/[color=(.+)](.+)[/color]/isU', '<span style="color:$1;">$2</span>', $str);
$str = preg_replace("/(http://)?([[:alnum:]]|_){3,30}(s+)?(.|,)(s+)?([[:alnum:]]|){3,30}(s)?(.|,)?(s)?([[:alnum:]]){2,4}/i", "", $str);
$str = smiles($str); // смайлы
$str = br($str); // переносы строк
return $str;
}
///////////////////////////////////////////////////////////////
?>