<?
include ('config.php');
echo'<p class="modul_name"align="center">Файлообменник</p>';
$d = $did = htmlspecialchars($_GET['d']);
$f = $fid = htmlspecialchars($_GET['f']);
$date=date("d.m.y");
$time=date("H:i");
echo $resultus;
switch($_GET['action'])
{
default:
if(!$d)
{
echo $top.'<p class="err">Ошибка!!! Не выбран каталог.</p>'.$foot;
include ('foot.php');
exit;
}
$title_dir = name($d);
$title_dir = htmlspecialchars($title_dir);
echo $top.'<p class="a">'.$title_dir.'</p>';
if(!eregi("[^a-z0-9_@+-]",$d))
{
$dir = opendir($d); //открываем текущую директорию
$k_files=0;
while($file = readdir($dir))
{
if($file!='.' && $file!='..' && $file[0]!='.' && strrchr($file,'.')!='.php' && strrchr($file,'.')!='.dat')
{
$a[$k_files]['name']=$file;
$a[$k_files]['time']=filemtime("$d/$file");
$a[$k_files]['size']= round(filesize("$d/$file")/1024,2); # в килобайтах
$k_files++;
}
} #записываем все что есть в массив
closedir($dir); #Закрываем
}
else
{
echo'<p class="err">Ошибка!!! Попытка взлома.</p>';
include ('foot.php');
exit;
}
function sfiles($str1, $str2)
{
if($str1['time'] == $str2['time'])
{
return 0;
}
elseif($str1['time'] < $str2['time'])
{
return 1;
}
else
{return -1;}
}
@usort($a, 'sfiles');
$total = sizeof($a); #считаем
$start = intval($_GET['start']);
if($total < $start+$downlist)
{
$end = $total;
}
else
{
$end = $start+$downlist;
}
for($i=$start; $i<$end; $i++)
{
$filtime = $a[$i]['time']+432000; //Сколько файл считать новым сейчас уст. на 5 суток
if($filtime>time())
{
echo '<p class="b">'.$img_inf.' <a href="down.php?action=ob&d='.$d.'&f='.$a[$i]['name'].'&">'.$a[$i]['name'].'</a> <img src="/images/st/new.gif"/><br />';
}
else
{
echo'<p class="b"><a href="down.php?action=ob&d='.$d.'&f='.$a[$i]['name'].'&">'.$a[$i]['name'].'</a><br/>';
}
$filename=$a[$i]['name'];
$te = @file("data/$filename.dat");
$u = explode('|',$te[0]);
if($u[0]=='')
{
$u[0]=0;
}
if(ereg('jar', $filename))
{
$filename=str_replace('.jar', '.jad', $filename);
$te2 = file("data/$filename.dat");
$filename=str_replace('.jad', '.jar', $filename);
$u2 = explode('|',$te2[0]);
if($u2[0]=='')
{
$u2[0]=0;
}
$u[0]=$u[0]+$u2[0];
}
$opis = @file("$d/$filename.dat");
$komment = explode('|:|:|:|',$opis[0]);
$opis=$komment[0];
$added=$komment[1];
if($added)
{
echo '<b>Добавил:</b> <a href="/modules/kabinet/user_info.php?nick='.$added.'">'.$added.'</a><br/><b>Размер:</b> ('.$a[$i]['size'].' Кб)<br/>';
}
if(preg_match('#[0-9]*(?:2|3|4)$#', $u[0]))
{
$raz = 'раза';
}
else
{
$raz = 'раз';
}
echo '<b>Cкачали:</b> '.$u[0].' '.$raz.'';
$tit=@round($u[2]/$u[1],1);
if($u[1]==''){$u[1]=0;}
echo '<br/><b>Рейтинг:</b> '.$tit.'/<b>'.$u[1].'</b>';
$filev = @file("data/$filename.dat");
$totalv = sizeof($filev)-1;
$data1 = explode('|',$filev[$totalv]);
if($data1[4]=='')
{
$data1[4]=0;
}
echo '<br/><a href="down.php?action=komm&d='.$d.'&f='.$a[$i]["name"].'&">Комментарии</a> ('.$data1[4].')</p>';
}
if(!$total)
{
echo '<p class="err">В этой папке нет файлов.</p>';
}
# постраничный вывод
echo'<p align="center"class="d">Страницы:<br />';
if($start != 0)
{
echo ''.$img_inf.'<a href="down.php?start='.($start - $downlist).'&d='.$d.'&">Назад</a> | ';
}
if($total > $start+$downlist)
{
echo '<a href="down.php?start='.($start + $downlist).'&d='.$d.'&">Далее</a>';
}
echo '</p><p class="b">Всего файлов: '.$total.'</p>'.$foot;
break;
case 'count':
$currHour=date('H',time());
$currDate=date('d F, Y', time());
$currTime=date("$currHour:i:s", time());
$currDate = str_replace('January','января',$currDate);
$currDate = str_replace('February','февраля',$currDate);
$currDate = str_replace('March','марта',$currDate);
$currDate = str_replace('April','апреля',$currDate);
$currDate = str_replace('May','мая',$currDate);
$currDate = str_replace('June','июня',$currDate);
$currDate = str_replace('July','июля',$currDate);
$currDate = str_replace('August','августа',$currDate);
$currDate = str_replace('September','сентября',$currDate);
$currDate = str_replace('October','октября',$currDate);
$currDate = str_replace('November','ноября',$currDate);
$currDate = str_replace('December','декабря',$currDate);
if(file_exists("$did/$fid"))
{
header("Location: $did/$fid");
$f = file("data/$fid.dat");
$u = explode('|',$f[0]);
$g=trim($u[0]+1);
$t= $g.'|'.$u[1].'|'.$u[2].'|'.$currDate;
$t=str_replace("\r\n",'',$t);
$rd=0;
$file=file("data/$fid.dat");
$fp=fopen("data/$fid.dat",'a+');
flock($fp,LOCK_EX);
ftruncate($fp,0);
for($i=0; $i<sizeof($file); $i++)
{
if($rd!=$i)
{
fputs($fp,$file[$i]);
}
else
{
fputs($fp,"$t\r\n");
}
}
fflush($fp);
flock($fp,LOCK_UN);
fclose($fp);
chmod("data/$fid.dat", 0666);
}
else
{
$resultus = $top.'<p class="err">Ошибка!!! Невозможно найти требуемый вам файл '.$did.'/'.$fid.'.</p>'.$foot;
}
break;
//////////////////////////////////////////////////////////////////
//Запись и вывод рейтинга
case 'vote':
if($_SESSION['votus']==$login)
{
echo $top.'<p class="err">Вы уже оценили этот файл!<br/></p>
<p class="b">'.$img_inf.' <a href="down.php?action=ob&d='.$d.'&f='.$fid.'&">К Описанию</a></p>'.$foot;
exit;
}
if(!file_exists("data/$fid.dat"))
{
echo $top.'<p class="err">Ошибка!!! Вы не можете оценивать т.к. никто еще не скачивал файл.</p>
<p class="b">'.$img_inf.' <a href="?action=ob&d='.$d.'&f='.$fid.'&">К Описанию</a></p>'.$foot;
exit;
}
if(file_exists("$d/$fid"))
{
$f = file("data/$fid.dat");
$u = explode('|',$f[0]);
$g=trim($u[1]+1);
$g2=trim($u[2]+intval($_POST['ocenka']));
$t= $u[0].'|'.$g.'|'.$g2.'|'.$u[3];
$rd=0;
$file=file("data/$fid.dat");
$fp=fopen("data/$fid.dat",'a+');
flock($fp,LOCK_EX);
ftruncate($fp,0);
for($i=0; $i<sizeof($file); $i++)
{
if($rd!=$i)
{fputs($fp,$file[$i]);}
else
{fputs($fp,$t);}
}
fflush($fp);
flock($fp,LOCK_UN);
fclose($fp);
chmod("data/$fid.dat", 0666);
echo $top.'<p class="b">Спасибо, ваша оценка: <b>"'.$_POST['ocenka'].'"</b> принята<br/></p>';
$votus=$fid;
session_register('votus');
$te = file("data/$fid.dat");
$u = explode('|',$te[0]);
$tit=round($u[2]/$u[1],1);
echo '<p class="b">Всего оценивало: '.$u[1].'<br/>
Средняя оценка: '.$tit.'<br/>
'.$img_inf.' <a href="down.php?action=ob&d='.$d.'&f='.$fid.'&">К Описанию</a></p>'.$foot;
}
else
{
echo $top.'<p class="err">Ошибка!!! Невозможно открыть требуемый вам файл '.$fid.'.</p>'.$foot;
}
break;
//////////////////////////////////////////////////////
// Вывод камментов
case 'komm':
print $top;
echo'<p class="a">Коментарии</p>';
if($_GET['err'] == 1)
{
echo'<p class="err">Ошибка!!! Сообщение не может быть больше 500 символов.</p>';
}
if($_GET['err'] == 2)
{
echo"<p class=\"err\">Ошибка!!! Вас забанил $banwho за $bantxt! Окончание бана: $bantime[6]$bantime[7].$bantime[4]$bantime[5].$bantime[0]$bantime[1]$bantime[2]$bantime[3] в $bantime[8]$bantime[9]:$bantime[10]$bantime[11] по времени сервера.</p>";
}
if($_GET['err'] == 3)
{
echo'<p class="err">Ошибка!!! Сообщение не может быть пустым.</p>';
}
if($_GET['err'] == 4)
{
echo'<p class="err">Ошибка!!! Вы не можете коментировать файл, т.к. его еще ни кто не скачивал.</p>';
}
if($_GET['err'] == 5)
{
echo'<p class="err">Ошибка!!! Вы не авторизованны. Войдите в личный кабинет.</p>';
}
$file = @array_reverse(@file("data/$f.dat"));
$total = sizeof($file)-1;
$start = intval($_GET['start']);
if($total < $start+$maxpostdown)
{
$end = $total;
}
else
{
$end = $start+$maxpostdown;
}
for($i=$start; $i<$end; $i++)
{
echo'<p class="b">';
$data = explode('|',$file[$i]);
$i2=round($i+1);
$data[0]=eregi_replace("((https?|ftp)://[[:alnum:]_=/-]+(\\.[[:alnum:]_=/-]+)*(/[[:alnum:]+&._=/%]*(\\?[[:alnum:]?+&_=/%]*)?)?)", "<a href='\\1'>\\1</a>", $data[0]);
$data[5]=str_replace("\r\n", '', $data[5]);
echo'Написал: <a href="/modules/kabinet/user_info.php?nick='.$data[3].'">'.$data[3].'</a><br />
('.$data[1].' / '.$data[2].')<br />
'.$data[0].'</p>';
}
if(!$total)
{
echo '<p class="b">К этому файлу нет коментариев.</p>';
}
echo'<p align="center"class="d">Страницы:<br />';
if($start != 0)
{
echo ''.$img_inf.'<a href="down.php?action=komm&d='.$d.'&f='.$f.'&start='.($start-$maxpostdown).'&">Назад</a> | ';
}
if($total > $start+$maxpostdown)
{
echo '<a href="down.php?action=komm&d='.$d.'&f='.$f.'&start='.($start+$maxpostdown).'&">Далее</a>';
}
echo'</p>';
if(isset($_SESSION['sespass']) && isset($passw) && $_SESSION['sespass'] == $passw)
{
echo'<form action="down.php?action=addkomm&f='.$f.'&d='.$d.'&" method="post" name="REPLIER">
<p class="b"align="center">
Сообщение:<br/>
<textarea cols="15" rows="4" name="msg"></textarea><br/>
<input name="trans" type="checkbox" value="y">
Транслит<br/>
<input type="submit" value="Написать">
</form><br /></p>';
}
print $foot;
break;
////////////////////////////////////////////////////////////////
// Запись комментариев
case 'addkomm':
if(isset($_SESSION['sespass']) && isset($passw) && $_SESSION['sespass'] == $passw)
{
$msg = $_POST['msg'];
$name = $login;
$date_now = date ('YmdHis', time() + $popravka);
if($bantime > $date_now)
{
$errb = 2;
}
$str=strlen($msg);
if(!$msg || $str>500)
{
header ("Location: ?action=komm&d=$d&f=$f&err=1&".session_name()."=".session_id()."");
exit;
}
if($errb == 2)
{
header ("Location: ?action=komm&d=$d&f=$f&err=2&".session_name()."=".session_id()."");
exit;
}
if(!$msg)
{
header ("Location: ?action=komm&d=$d&f=$f&err=3&".session_name()."=".session_id()."");
exit;
}
if(!file_exists("data/$f.dat"))
{
header ("Location: ?action=komm&d=$d&f=$f&err=4&".session_name()."=".session_id()."");
exit;
}
if($_POST['trans']=='y')
{
$msg=trans($msg);
}
$msg=substr($msg,0,500);
$msg=nl2br(trim(htmlspecialchars(stripslashes($msg))));
$file = file("data/$f.dat");
$total = sizeof($file)-1;
$data1 = explode('|',$file[$total]);
$me=$data1[4]+1;
$text=$msg.'|'.$date.'|'.$time.'|'.$name.'|'.$me.'|';
$text=str_replace("\r\n", '', $text);
$fp=fopen("data/$f.dat",'a+');
flock($fp,LOCK_EX);
fputs($fp,"$text\r\n");
flock($fp,LOCK_UN);
fclose($fp);
chmod("data/$f.dat", 0666);
$fo = file('local.dat');
$u = explode('|',$fo[0]);
$g=trim($u[5]+1);
$t = $u[0].'|'.$u[1].'|'.$u[2].'|'.$u[3].'|'.$u[4].'|'.$g.'|'.$u[6];
$fp = fopen('local.dat','a+');
flock($fp,LOCK_EX);
ftruncate($fp,0);
fputs($fp,$t);
fflush($fp);
flock($fp,LOCK_UN);
fclose($fp);
chmod('local.dat', 0666);
$file=file("data/$f.dat");
$i = sizeof($file);
if($i>=$maxmesdown)
{
$fp=fopen("data/$f.dat",'w');
flock($fp,LOCK_EX);
unset($file[1]);
fputs($fp, implode('',$file));
flock($fp,LOCK_UN);
fclose($fp);
chmod("data/$f.dat", 0666);
}
header ("Location: ?action=komm&d=$d&f=$f&".session_name()."=".session_id()."");
exit;
}
else
{
header ("Location: ?action=komm&d=$d&f=$f&err=5&".session_name()."=".session_id()."");
exit;
}
///////////////////////////////////////////////////////////////
// выводим описание
case 'ob':
if(!$d || !$f)
{
echo $top.'<p class="err">Ошибка!!! Не выбрана категория или файл.</p>'.$foot;
exit;
} //контроль
if(file_exists("$d/$f"))
{
$siz = round(filesize("$d/$f")/1024,2);
echo $top.'<p class="b"><b>Файл:</b> '.$f.'<br/><b>Размер:</b> ('.$siz.' Кб)<br />';
if(!eregi("[^a-z0-9_@+-]",$d) && (!eregi("[^a-z0-9_@+.-]",$f)))
{
$opis = @file_get_contents("$d/$f.dat");
$komment = explode('|:|:|:|',$opis);
if($komment['1']!='')
{
echo'<b>Добавил:</b> <a href="/modules/kabinet/user_info.php?nick='.$komment['1'].'">'.$komment['1'].'</a><br/>';
}
if($komment['0']!='')
{
echo'<b>Описание:</b><br /> '.$komment['0'].'<br/>';
}
}
if($komment = '')
{
echo $top.'<p class="err">'.$f.'<br/></p>Ошибка!!! Описания нет.<br/>';
}
if(file_exists("jpg/$f"))
{
echo'<b>Скриншот:</b><br/><img src="/modules/obmennik/jpg/'.$f.'" alt=""/><br />';
}
elseif(file_exists("gif/$f"))
{
echo'<b>Скриншот:</b><br /><img src="/modules/obmennik/gif/'.$f.'" alt=""/><br />';
}
elseif(file_exists("png/$f"))
{
echo'<b>Скриншот:</b><br /><img src="/modules/obmennik/png/'.$f.'" alt=""/><br />';
}
echo '<img src="/images/st/dload.gif"alt=""/> <a href="down.php?action=count&d='.$d.'&f='.$f.'&">Скачать</a>';
$jar_file=str_replace('.jar','',$f);
if(file_exists("jar/$f.jar"))
{
echo '<br/><img src="/images/st/dload.gif"alt=""/> <a href="down.php?action=ob&d=jar&f='.$jad.'">Скачать JAD</a>';
}
if(file_exists("jad/$f.jad"))
{
echo '<br/><img src="/images/st/dload.gif"alt=""/> <a href="down.php?action=ob&d=jad&f='.$jar.'">Скачать JAR</a>';
}
$sn=explode('/',$_SERVER['SCRIPT_NAME']);
echo '<br/></p><p class="b"><b>Ссылка:</b> <br /><input name="text" value="'.$home.'/modules/obmennik/down.php?action=ob&d='.$d.'&f='.$f.'"/><br />
<b>BB код:</b><br /><input name="text" value="[url='.$home.'/modules/obmennik/down.php?action=ob&d='.$d.'&f='.$f.']'.$f.'[/url] ('.$siz.' Кб)"/><br /></p>';
$te = @file("data/$f.dat");
$u = explode('|',$te[0]);
if($u[0]==''){$u[0]=0;}
if(ereg('jar', $f))
{
$f=str_replace('.jar', '.jad', $f);
$te2 = file("data/$f.dat");
$f=str_replace('.jad', '.jar', $f);
$u2 = explode('|',$te2[0]);
if($u2[0]==''){$u2[0]=0;}
$u[0]=$u[0]+$u2[0];
}
if(preg_match('#[0-9]*(?:2|3|4)$#', $u[0]))
{
$raz = 'раза';
}
else
{
$raz = 'раз';
}
echo '<p class="b"><b>Cкачали:</b> '.$u[0].' '.$raz.'<br />';
if(!empty($u[3]))
{
echo'<b>Последнее скачивание:</b><br />'.$u[3].'<br />';
}
$file = @file("data/$f.dat");
$total = sizeof($file)-1;
$data1 = explode('|',$file[$total]);
if($data1[4]==''){$data1[4]=0;}
$tit=@round($u[2]/$u[1],1);
if($u[1]=='')
{
$u[1]=0;
}
echo '<a href="down.php?action=komm&d='.$d.'&f='.$f.'&">Комментарии</a> ('.$data1[4].')<br/></p><form action="down.php?action=vote&d='.$d.'&f='.$f.'&" method="post" name="vote">
<p class="b">
<b>Рейтинг:</b> '.$tit.'/<b>'.$u[1].'</b><br/>
<b>Оценить:</b><br/>
<select name="ocenka">
<option value="10">10</option>
<option value="9">9</option>
<option value="8">8</option>
<option value="7">7</option>
<option value="6">6</option>
<option value="5">5</option>
<option value="4">4</option>
<option value="3">3</option>
<option value="2">2</option>
<option value="1">1</option>
</select>
<input name="fid" type="hidden" value="'.$f.'">
<input type="submit" value="Oценить">
</form><br /></p>';
}
else
{
echo'<p class="err">Ошибка!!! Файл не найден.</p>';
include ('foot.php');
exit;
}
echo ''.$img_inf.' <a href="down.php?d='.$d.'&">Назад</a><br />'.$foot.'</p>';
break;
}
include ('foot.php');
?>