Файл: down/zip.php
Строк: 126
<?php
require'../shaxty.php'; // waphp.ru - закрытый клуб вап мастеров!
require_once'fun.php';
require 'pclzip.lib.php';
$align='left';
$title='Архив файлов!';
$head='Архив файлов! Тут найдется все )';
include_once (H.'shaxty/head.php');
check_login();
$onpage = get2ses('onpage');
is_num($onpage,'onpage');
$prew = get2ses('prew');
$page = intval($_GET['page']);
$start = intval($_GET['start']);
if($onpage < 1)$onpage = 10;
if($page < 1)$page = 1;
$d = mysql_fetch_array(mysql_query("SELECT * FROM `files` WHERE `id` = '$id'"));
$sqlR = mysql_fetch_array(mysql_query("SELECT close FROM files WHERE path = '$d[infolder]' AND size = '0'"));
if ($sqlR[0] > $user['level'])
{
echo '<b span style="color: #FF0000;">Самый типа умный? Данный скрипт разрешается просматривать с уровня ' . level($sqlR[0]) . '</b><br/>';
include_once '../shaxty/foot.php';
exit();
}
if(!file_exists($d['path'])) die('Такой файл не существует');
###############Получаем каталог#############
$filename = pathinfo($d['path']);
$ext = strtolower($filename['extension']);
if($ext!='zip') die('Файл не является ZIP архивом');
$dir = $filename['dirname'].'/';
$back = mysql_fetch_array(mysql_query("SELECT * FROM `files` WHERE `path` = '".$dir."'"));
###############Заголовок###################
$dir = $filename['dirname'].'/';
$filename = $filename['basename'];
$back = mysql_fetch_array(mysql_query("SELECT * FROM `files` WHERE `path` = '".clean($dir)."'"));
$back['name'] = str_replace('*','',$back['name']);
echo $div1.'<a href="/"><b> '.$_SERVER['HTTP_HOST'].'</b></a>»<a href="'.H2.'down/">Загрузки</a>»<a href="'.H2.'down/dir/'.$back['id'].'">'.$back['name'].'</a>»<strong>Просмотр архива '.basename($d['path']).'</strong>'.$div9;
if(!$_GET['action'])
{
$zip = new PclZip($d['path']);
if(!$list = $zip->listContent()) die('Ошибка: '.$zip->errorInfo(true));
for($i=0; $i<sizeof($list); $i++)
{
for(reset($list[$i]); $key = key($list[$i]); next($list[$i]))
{
$zfilesize = strstr($listcontent,'--size');
$zfilesize = str_replace('--size:','',$zfilesize);
$zfilesize = str_replace($zfilesize,$zfilesize.'|',$zfilesize);
$sizelist .= $zfilesize;
$listcontent = "[$i]--$key:".$list[$i][$key];
$zfile = strstr($listcontent,'--filename');
$zfile = str_replace('--filename:','',$zfile);
$zfile = str_replace($zfile,$zfile.'|',$zfile);
$savelist .= $zfile;
}
}
$sizefiles2 = explode('|',$sizelist);
$sizelist2=array_sum($sizefiles2);
$obkb=round($sizelist2/1024,2);
$preview=$savelist;
$preview = explode('|',$preview);
$count = count($preview)-1;
echo 'Всего файлов: '.$count.'<br>Вес распакованного архива: '.$obkb.' kb</div><div class="a">';
if (!isset($page)) $page=1;
$n = 0;
$pages = ceil($count/$onpage);
if(!$pages) $pages = 1;
if ($page) $n = ($onpage*$page)-$onpage;
if ($count == 0) echo 'Пока пусто :(';
$sizefiles = explode('|',$sizelist);
$selectfile = explode('|',$savelist);
//------------------------------------------------------------------------------------------
for ($i = 1; $i<=$onpage; $i++)
{
if (empty($selectfile[$n]))
{
$n++;
continue;
}
$path = $selectfile[$n];
$fname = $path;
echo $zdir.'/<a href="'.$_SERVER['PHP_SELF'].'?action=preview&id='.$id.'&open='.$path.'">'.$fname.'</a>';
if($sizefiles[$n]!='0') echo ' ['.round($sizefiles[$n]/1024,2).'kb]';
echo'<br>';
$n++;
}
//------------------------------------------------------------------------------------------
echo '<br/><dl><dt></dt></dl>';
echo 'Страницы: ';
$asd= $page - 2;
$asd2= $page + 5;
if($asd<$count && $asd>0 && $page>5) echo '<a href="zip.php?id='.$id.'&page=1">1</a> ... ';
for($i=$asd; $i<$asd2;$i++)
{
if($i<$count && $i>0)
{
if ($i > $pages ) break;
if ($page==$i) echo '<strong>['.$i.']</strong> ';
else echo '<a href="zip.php?id='.$id.'&page='.$i.'">'.$i.'</a> ';
}
}
if ($i <= $pages)
{
if($asd2<$count) echo ' ... <a href="zip.php?id='.$id.'&page='.$pages.'">'.$pages.'</a>';
}
echo '<br/><dl><dt></dt></dl>';
echo '<br>';
}
###############Просмотр файла###################
if($_GET['action']=='preview')
{
if(strpos($_GET['open'] , '..') !== false or strpos($_GET['open'] , './') !== false) die($hackmess);
$_GET['open'] = clean(del($_GET['open']));
$zip = new PclZip($d['path']);
$content = $zip->extract(PCLZIP_OPT_BY_NAME, $_GET['open'] ,PCLZIP_OPT_EXTRACT_AS_STRING);
$content = $content[0]['content'];
$letters=array('а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я','А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я');
for($b=0; $b<66; $b++)
{
if(strstr($content,$letters[$b])!== false){$utf='ok';}
}
$preview2 = explode("r",$content);
$count = count($preview2);
function highlight_code($code)
{
$code=trim($code);
return highlight_string($code,true);
}
echo '<strong>Файл: '.$_GET['open'].'</strong><br>Строк: '.$count.'</div><div class="a">';
if($utf=='ok') echo highlight_code($content); else echo highlight_code(iconv('windows-1251','utf-8',$content));
echo'</div>';
}
echo $div1.'<a href="/down/'.$id.'">К файлу</a>'.$div9;
echo $div1.' <a href="'.H2.'down/dir/'.$back['id'].'">В категорию</a>'.$div9;
echo $div1.'<a href="'.H2.'down/">Загрузки</a>'.$div9;;
include_once (H.'shaxty/foot.php');
?>