Вход Регистрация
Файл: obmen/down.php
Строк: 204
<?php
// ФайлоОбменнег
// Mod by Gemorroj


require 'config.php';

$d $did $_GET['d'];
$f $fid $_GET['f'];

$date date('d.m.y');
$time date('H:i');

echo 
$resultus;

switch (
$_GET['action']) {
    default:
        if (!
$d) {
            echo 
$top '<div class="red">Произошла ошибка! Не выбран каталог</div>' $foot;
            exit;
        }

        
$title_dir name($d);

        echo 
$top '<div class="w"><img src="data/images/dir_big.png" alt=""/>' $title_dir '<br/></div>';


        if (!
preg_match("/[^a-z0-9_@+-]/i"$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") / 10242); // в килобайтах

                    
$k_files++;
                }
            } 
//записываем все что есть в массив

            
closedir($dir); //Закрываем

        
} else {
            echo 
'ПАШШОЛ НАХУЙ ЕБЛАН!';
            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 $_SERVER['REQUEST_TIME']) {
                echo 
'<div class="border">(new) <a href="down.php?action=ob&amp;d=' $d '&amp;f=' $a[$i]['name'] . '&amp;' SID '">' $a[$i]['name'] . '</a> (' $a[$i]['size'] . ' kb)<br/></div>';
            } else {
                echo 
'<div class="border"><img src="data/images/file.png" alt=""/> <a href="down.php?action=ob&amp;d=' $d '&amp;f=' $a[$i]['name'] . '&amp;' SID '">' $a[$i]['name'] . '</a> (' $a[$i]['size'] . ' kb)<br/></div>';
            }

            
$filename $a[$i]['name'];

            
$te = @file("data/$filename.dat");
            
$u explode('|'$te[0]);
            if (
$u[0] == '') {
                
$u[0] = 0;
            }

            if (
pathinfo($filenamePATHINFO_EXTENSION) == 'jar') {
                
$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 
'Добавил: ' $added '<br/>';
            }

            echo 
'Cкачиваний: ' $u[0];

            
$tit = @round($u[2] / $u[1], 1);
            if (
$u[1] == '') {
                
$u[1] = 0;
            }

            echo 
'<br/>Рейтинг: ' $tit '/<strong>' $u[1] . '</strong>';

            
$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&amp;d=' $d '&amp;f=' $a[$i]["name"] . '&amp;' SID '">Комментарии</a> (' $data1[4] . ')<br/>';
        }

        if (!
$total) {
            echo 
'<div class="red">Пока нет файлов<br/></div>';
        }

        
# постраничный вывод

        
if ($start != 0) {
            echo 
'<div class="border"><a href="down.php?start=' . ($start $downlist) . '&amp;d=' $d '&amp;' SID '">Назад |</a> ';
        }

        if (
$total $start $downlist) {
            echo 
' <a href="down.php?start=' . ($start $downlist) . '&amp;d=' $d '&amp;' SID '">| Далее</a></div>';
        }

        echo 
'<div class="border">Всего файлов: ' $total '<br/></div>' $foot;
        break;


    case 
'count':
        
$currHour date('H');
        
$currDate date('d F, Y');
        
$currTime date("$currHour:i:s");
        
$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("rn"''$t);
            
$rd 0;

            
$file file("data/$fid.dat");
            
$fp fopen("data/$fid.dat"'a+');

            
flock($fpLOCK_EX);
            
ftruncate($fp0);

            for (
$i 0$all sizeof($file); $i $all$i++) {
                if (
$rd != $i) {
                    
fputs($fp$file[$i]);
                } else {
                    
fputs($fp"$trn");
                }
            }

            
fflush($fp);
            
flock($fpLOCK_UN);
            
fclose($fp);
            
chmod("data/$fid.dat"0666);

        } else {
            
$resultus $top '<div class="red">Ошибка, невозможно найти требуемый вам файл ' $did '/' $fid '</div>' $foot;
        }
        break;

        
//////////////////////////////////////////////////////////////////

        //Запись и вывод рейтинга

    
case 'vote':
        if (
$_SESSION['votus'] == $fid) {
            echo 
$top '<div class="red">Вы уже оценили этот файл!<br/>&#187; <a href="down.php?action=ob&amp;d=' $d '&amp;f=' $fid '&amp;' SID '">К Описанию</a></div>' $foot;
            exit;
        }

        if (!
file_exists("data/$fid.dat")) {
            echo 
$top '<div class="red">Вы не можете оценивать т.к. никто еще не скачивал файл<br/>&#187; <a href="?action=ob&amp;d=' $d '&amp;f=' $fid '&amp;' SID '">К Описанию</a></div>' $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($fpLOCK_EX);
            
ftruncate($fp0);

            for (
$i 0$all sizeof($file); $i $all$i++) {
                if (
$rd != $i) {
                    
fputs($fp$file[$i]);
                } else {
                    
fputs($fp$t);
                }
            }

            
fflush($fp);
            
flock($fpLOCK_UN);
            
fclose($fp);
            
chmod("data/$fid.dat"0666);

            echo 
$top '<div class="red">Спасибо, ваша оценка: <strong>"' $_POST['ocenka'] . '"</strong> принята<br/></div>';

            
$votus $fid;

            
session_register('votus');

            
$te file("data/$fid.dat");
            
$u explode('|'$te[0]);
            
$tit round($u[2] / $u[1], 1);

            echo 
'Всего оценивало: ' $u[1] . '<br/>Средняя оценка: ' $tit '<br/>&#187; <a href="down.php?action=ob&amp;d=' $d '&amp;f=' $fid '&amp;' SID '">К Описанию</a>' $foot;
        } else {
            echo 
$top '<div class="red">Ошибка, невозможно открыть требуемый вам файл ' $fid '<br/></div>' $foot;
        }
        break;

        
//////////////////////////////////////////////////////

        // Вывод камментов

    
case 'komm':
        echo 
$top '<div class="input">
<form action="down.php?action=addkomm&amp;f=' 
$f '&amp;d=' $d '&amp;' SID '" method="post" name="REPLIER">
<div>
Ваше имя<br/>
<input name="name" type="text" maxlength="10"><br/>
<strong>Сообщение</strong><br/>
<textarea cols="25" rows="3" name="msg"></textarea><br/>
Транслит<input name="trans" type="checkbox" value="y"><br/>
<input type="submit" value="Написать">
</div>
</form>
</div>'
;

        
$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++) {
            
$data explode('|'$file[$i]);
            
$i2 round($i 1);

            
$data[0] = preg_replace("/((https?|ftp)://[[:alnum:]_=/-]+(\.[[:alnum:]_=/-]+)*(/[[:alnum:]+&._=/%]*(\?[[:alnum:]?+&_=/%]*)?)?)/i"'<a href="$1">$1</a>'$data[0]);
            
$data[5] = str_replace("rn"''$data[5]);

            echo 
'<div class="border"><strong> ' $data[3] . '</strong><small> (' $data[2] . ' / ' $data[1] . ')</small></div>' $data[0] . '<br/>';
        }

        if (
$start != 0) {
            echo 
'<div class="border"><a href="down.php?action=komm&amp;d=' $d '&amp;f=' $f '&amp;start=' . ($start $maxpostdown) . '&amp;' SID '">Назад</a> ';
        }

        if (
$total $start $maxpostdown) {
            echo 
' <a href="down.php?action=komm&amp;d=' $d '&amp;f=' $f '&amp;start=' . ($start $maxpostdown) . '&amp;' SID '">Далее</a><br/></div>';
        }

        echo 
$foot;
        break;

        
////////////////////////////////////////////////////////////////

        // Запись комментариев

    
case 'addkomm':
        
$msg $_POST['msg'];
        
$name $_POST['name'];

        
$str strlen($msg);
        if (!
$msg || $str 6) {
            echo 
$top '<div class="red">Вы не написали комментарий или он слишком короткий<br/>
&#187; <a href="?action=komm&amp;d=' 
$d '&amp;f=' $f '&amp;' SID '">Вернуться</a><br/>
&#187; <a href="?action=ob&amp;d=' 
$d '&amp;f=' $f '&amp;' SID '">К Описанию</a></div>' $foot;
            exit;
        }

        if (!
$name) {
            echo 
$top '<div class="red">Вы не ввели имя<br/>
&#187; <a href="?action=komm&amp;d=' 
$d '&amp;f=' $f '&amp;' SID '">Вернуться</a><br/>
&#187; <a href="?action=ob&amp;d=' 
$d '&amp;f=' $f '&amp;' SID '">К Описанию</a></div>' $foot;
            exit;
        }

        if (!
file_exists("data/$f.dat")) {
            echo 
$top '<div class="red">Вы не можете комментировать т.к. никто еще не скачивал файл<br/>
&#187; <a href="?action=komm&amp;d=' 
$d '&amp;f=' $f '&amp;' SID '">Вернуться</a><br/>
&#187; <a href="?action=ob&amp;d=' 
$d '&amp;f=' $f '&amp;' SID '">К описанию</a></div>' $foot;
            exit;
        }

        if (
$_POST['trans'] == 'y') {
            
$msg trans($msg);
        }

        
$name iconv_substr($name012'UTF-8');
        
$name trim(htmlspecialchars($name));

        
$msg iconv_substr($msg01024'UTF-8');
        
$msg nl2br(trim(htmlspecialchars($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("rn"''$text);

        
$fp fopen("data/$f.dat"'a+');
        
flock($fpLOCK_EX);
        
fputs($fp"$textrn");
        
flock($fpLOCK_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($fpLOCK_EX);
        
ftruncate($fp0);
        
fputs($fp$t);
        
fflush($fp);
        
flock($fpLOCK_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($fpLOCK_EX);
            unset(
$file[1]);
            
fputs($fpimplode(''$file));
            
flock($fpLOCK_UN);
            
fclose($fp);
            
chmod("data/$f.dat"0666);
        }

        echo 
$top '<div class="red">Ваш комментарий успешно добавлен!<br/>
&#187; <a href="?action=komm&amp;d=' 
$d '&amp;f=' $f '&amp;' SID '">Вернуться</a><br/>
&#187; <a href="?action=ob&amp;d=' 
$d '&amp;f=' $f '&amp;' SID '">К Описанию</a></div>' $foot;
        break;


        
///////////////////////////////////////////////////////////////

        // выводим описание

    
case 'ob':
        if (!
$d || !$f) {
            echo 
$top '<div class="red">Произошла ошибка! Не выбрана категория или файл<br/></div>' $foot;
            exit;
        } 
//контроль

        
if (file_exists("$d/$f.dat")) {
            echo 
$top '<div class="border">' $f '<br/></div>';

            if (!
preg_match("/[^a-z0-9_@+-]/i"$d) && (!preg_match("/[^a-z0-9_@+.-]/i"$f))) {
                
$opis = @file_get_contents("$d/$f.dat");
                
$komment explode('|:|:|:|'$opis);

                if (
$komment['0'] != '') {
                    echo 
'Описание: ' $komment['0'] . '<br/>';
                }
                if (
$komment['1'] != '') {
                    echo 
'Добавил: ' $komment['1'] . '<br/>';
                }
            } else {
                echo 
'ПАШШОЛ НАХУЙ ЕБЛАН!';
                exit;
            }

        } else {
            echo 
$top '<div class="border">' $f '<br/></div>Описания нет<br/>';
        }

        
$siz round(filesize("$d/$f") / 10242);

        if (
file_exists("$d/$f.JPG")) {
            echo 
'<br/>Скриншот:<br/><img src="' $d '/' $f '.JPG" alt=""/>';
        } elseif (
file_exists("$d/$f.GIF")) {
            echo 
'<br/>Скриншот:<br/><img src="' $d '/' $f '.GIF" alt=""/>';
        }

        echo 
'<strong><a href="down.php?action=count&amp;d=' $d '&amp;f=' $f '&amp;' SID '">Скачать</a></strong> (' $siz ' kb)';

        
$jar_file str_replace('.jar'''$f);

        if (
file_exists("$d/$jar_file.jad")) {
            echo 
'<br/><strong><a href="down.php?action=count&amp;d=' $d '&amp;f=' $jar_file '.jad&amp;' SID '">Скачать JAD</a></strong>';
        }

        
$sn explode('/'$_SERVER['SCRIPT_NAME']);

        echo 
'<br/><input name="text" value="http://' $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/' $d '/' $f '"/>';

        
$te = @file("data/$f.dat");
        
$u explode('|'$te[0]);
        if (
$u[0] == '') {
            
$u[0] = 0;
        }

        if (
pathinfo($fPATHINFO_EXTENSION) == 'jar') {
            
$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];
        }

        echo 
'<br/>Cкачиваний: ' $u[0];

        if (!empty(
$u[3])) {
            echo 
'<br/>Последнее скачивание: ' $u[3];
        }

        
$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 
'<br/><a href="down.php?action=komm&amp;d=' $d '&amp;f=' $f '&amp;' SID '">Комментарии</a> (' $data1[4] . ')<br/>
Рейтинг: ' 
$tit '/<strong>' $u[1] . '</strong><br/>
<div class="input">
<form action="down.php?action=vote&amp;d=' 
$d '&amp;f=' $f '&amp;' SID '" method="post" name="vote">
<div>
Оценить<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ценить">
</div>
</form>
</div>'
;

        echo 
'<div class="border">&#187; <a href="down.php?d=' $d '&amp;' SID '">Назад</a><br/></div>' $foot;
        break;
}

?>
Онлайн: 1
Реклама