- <?php
- error_reporting(0);
- @header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
- @header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
- @header('Cache-Control: no-cache, forua=true');
- @header('Pragma: no-cache');
- @header('Content-Type: text/html; charset=utf-8');
- $log = ''; $pas = '';
- if((@preg_match('~^[a-z0-9]{3,33}$~i', $_GET['log']))&&(@preg_match('~^[a-z0-9]{3,33}$~i', $_GET['pas']))) {
- $log = htmlspecialchars($_GET['log'], ENT_QUOTES);
- $pas = htmlspecialchars($_GET['pas'], ENT_QUOTES);
- }
- @require('./conf.php');
- $ref = mt_rand(1000,9999);
- if(($log !== MYLOGIN)||($pas !== MYPASSWORD)) {
- echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>'.
- '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'.
- '<title>Вход</title>'.
- '<style type="text/css">'.
- 'input { font-size: 10pt; }'.
- '</style></head><body bgcolor="'.FONS.'" link="'.LINKS.'" text="'.TEXTS.'">'.
- '<form action="'.SURL.'/?ref='.$ref.'" method="get">'.
- '<p align="left" style="background-color: '.FORMS.'">'.
- '<small><u>Логин</u>:</small><br>'.
- '<input type="text" name="log" title="Логин" maxlength="33"><br>'.
- '<small><u>Пароль</u>:</small><br>'.
- '<input type="text" name="pas" title="Пароль" maxlength="33"><br>'.
- '<input type="submit" value="Войти!">'.
- '</p></form>'.
- '<p align="left">'.
- '<small>---<br><a href="'.MYSITE.'">'.NASITE.'</a></small>'.
- '</p></body></html>';
- exit; }
- $mod = intval($_GET['mod']);
- $name = '../'.@preg_replace('~\.*\.\/+~', '', @str_replace(chr(0), '', trim(rawurldecode($_GET['name']))));
- $rname = rawurlencode($name);
- $folder = '../'.@preg_replace('~\.*\.\/+~', '', @str_replace(chr(0), '', trim(rawurldecode($_GET['folder']))));
- $rfolder = rawurlencode($folder);
- $pk = trim(rawurldecode($_GET['pk']));
- $c = intval($_GET['c']);
- if($c < 1) { $c = 1; }
- $p = intval($_GET['p']);
- if($p < 1) { $p = 1; }
- $res = intval($_GET['res']);
- @require('./pclzip.php');
- switch($mod) {
- case 5:
- $file = str_replace('.|htaccess', '.htaccess', trim(rawurldecode($_GET['file'])));
- $rfile = rawurlencode(str_replace('.htaccess', '.|htaccess', $file));
- echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>'.
- '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'.
- '<title>Код файла</title>'.
- '</head><body bgcolor="'.FONS.'" link="'.LINKS.'" text="'.TEXTS.'">'.
- '<p align="left"><small>---<br>';
- if(is_file($name)) {
- if($zip = new PclZip($name)) {
- if($arrcon = $zip->extract(PCLZIP_OPT_BY_NAME, "$file", PCLZIP_OPT_EXTRACT_AS_STRING)) {
- echo 'Архив:<br>'.str_replace('$', '$', htmlspecialchars($name, ENT_QUOTES)).'<br>'.
- 'Файл:<br>'.str_replace('$', '$', htmlspecialchars($file, ENT_QUOTES)).'<br>---<br>';
- $arrstr = @explode("\n", rtrim(str_replace("\r", '', $arrcon[0]['content'])));
- $ct = count($arrstr);
- $allp = ceil($ct/ONPAGE);
- if($c > $allp) {
- $c = 1; }
- $ot = intval(ONPAGE * ($c - 1));
- if(($ot < 0)||($ot >= $ct)) { $ot = 0; }
- $do = intval(ONPAGE * $c);
- if(($do < 1)||($do > $ct)) { $do = $ct; }
- for($i = $ot; $i < $do; $i++) {
- echo ''.($i+1).'. <font color="'.CKOD.'">'.str_replace('$', '$', htmlspecialchars($arrstr[$i], ENT_QUOTES)).'</font><br>'; }
- unset($arrcon);
- unset($arrstr);
- echo '---<br>Всего строк: '.$ct.'<br>Стр.: ';
- for($str = 1; $str <= $allp; $str++) {
- if(($str <> $c)&&($str < $c - LPAGE)&&($str == 1)) {
- echo '<a href="'.SURL.'/?mod=5&name='.$rname.'&file='.$rfile.'&c='.$str.'&p='.$p.'&log='.$log.'&pas='.$pas.'&ref='.$ref.'">'.$str.'</a> .. '; }
- if(($str < $c)&&($str >= $c - LPAGE)) {
- echo '<a href="'.SURL.'/?mod=5&name='.$rname.'&file='.$rfile.'&c='.$str.'&p='.$p.'&log='.$log.'&pas='.$pas.'&ref='.$ref.'">'.$str.'</a> '; }
- if($str == $c) {
- echo '<b><u>'.$str.'</u></b> '; }
- if(($str > $c)&&($str <= $c + LPAGE)) {
- echo '<a href="'.SURL.'/?mod=5&name='.$rname.'&file='.$rfile.'&c='.$str.'&p='.$p.'&log='.$log.'&pas='.$pas.'&ref='.$ref.'">'.$str.'</a> '; }
- if(($str <> $c)&&($str > $c + LPAGE)&&($str == $allp)) {
- echo '.. <a href="'.SURL.'/?mod=5&name='.$rname.'&file='.$rfile.'&c='.$str.'&p='.$p.'&log='.$log.'&pas='.$pas.'&ref='.$ref.'">'.$str.'</a>'; }
- } } else {
- echo 'Произошла ошибка.<br>Просмотр невозможен.';
- } } else {
- echo 'Произошла ошибка.<br>Просмотр невозможен.';
- } } else {
- echo 'Произошла ошибка.<br>Архива несуществует.'; }
- echo '<br>---<br><a href="'.SURL.'/?mod=1&name='.$rname.'&p='.$p.'&log='.$log.'&pas='.$pas.'&ref='.$ref.'">Просмотр архива</a><br>'.
- '---<br><a href="'.SURL.'/?log='.$log.'&pas='.$pas.'&ref='.$ref.'">Меню</a></small>'.
- '</p></body></html>';
- break;
- case 4:
- $files = @array_map('trim', @array_map('rawurldecode', $_GET['files']));
- $res = 1;
- if(is_file($name)) {
- if($zip = new PclZip($name)) {
- if($zip->extract(PCLZIP_OPT_PATH, "$folder", PCLZIP_OPT_BY_NAME, $files) <> 0) {
- if(is_dir($folder)) {
- $res = 2; } } } }
- if($res == 2) {
- @header('Location: '.SURL.'/?mod=1&name='.$rname.'&p='.$p.'&pk='.$rfolder.'&log='.$log.'&pas='.$pas.'&res=2&ref='.$ref.'');
- } else {
- @header('Location: '.SURL.'/?mod=1&name='.$rname.'&p='.$p.'&log='.$log.'&pas='.$pas.'&res=1&ref='.$ref.'');
- }
- break;
- case 3:
- $res = 1;
- if(is_file($name)) {
- if($zip = new PclZip($name)) {
- if($zip->extract(PCLZIP_OPT_PATH, "$folder") <> 0) {
- if(is_dir($folder)) {
- $res = 3; } } } }
- if(intval($_GET['un']) == 1) {
- if($res == 3) {
- @header('Location: '.SURL.'/?log='.$log.'&pas='.$pas.'&name='.$rname.'&pk='.$rfolder.'&res=3&ref='.$ref.'');
- } else {
- @header('Location: '.SURL.'/?log='.$log.'&pas='.$pas.'&res=1&ref='.$ref.'');
- } } else {
- if($res == 3) {
- @header('Location: '.SURL.'/?mod=1&name='.$rname.'&p='.$p.'&pk='.$rfolder.'&log='.$log.'&pas='.$pas.'&res=3&ref='.$ref.'');
- } else {
- @header('Location: '.SURL.'/?mod=1&name='.$rname.'&p='.$p.'&log='.$log.'&pas='.$pas.'&res=1&ref='.$ref.'');
- } }
- break;
- case 2:
- $res = 1;
- if(@preg_match('~^\.\.\/.*[^\/]+$~', $name)) {
- $nm = basename($name);
- if(is_dir($name)) {
- if($zip = new PclZip(ZDIR.'/'.$nm.'.zip')) {
- if($zip->create("$name", PCLZIP_OPT_REMOVE_PATH, "$name") <> 0) {
- $res = 4; } } }
- elseif(is_file($name)) {
- $fnm = @preg_replace("~([^.]+).*~m", "\\1", $nm);
- if($zip = new PclZip(ZDIR.'/'.$fnm.'.zip')) {
- if($zip->create("$name", PCLZIP_OPT_REMOVE_ALL_PATH) <> 0) {
- $res = 5; } } } }
- if(($res == 4)||($res == 5)) {
- @header('Location: '.SURL.'/?log='.$log.'&pas='.$pas.'&name='.$rname.'&res='.$res.'&ref='.$ref.'');
- } else {
- @header('Location: '.SURL.'/?log='.$log.'&pas='.$pas.'&res=1&ref='.$ref.'');
- }
- break;
- case 1:
- function rsz($sz) {
- $sz = intval($sz);
- if(($sz >= 0)&&($sz < 1024)) {
- $rsz = round($sz/1000, 2).' K'; }
- elseif(($sz >= 1024)&&($sz < 1048576)) {
- $rsz = round($sz/1024, 2).' K'; }
- elseif($sz >= 1048576) {
- $rsz = round($sz/1024/1024, 2).' M'; }
- else { $rsz = '-'; }
- return $rsz; }
- echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>'.
- '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'.
- '<title>Просмотр</title>'.
- '<style type="text/css">'.
- 'textarea, input { font-size: 10pt; }'.
- '</style></head><body bgcolor="'.FONS.'" link="'.LINKS.'" text="'.TEXTS.'">'.
- '<p align="left"><small>---<br>';
- if(is_file($name)) {
- echo 'Архив:<br>'.str_replace('$', '$', htmlspecialchars($name, ENT_QUOTES)).'<br>---<br>';
- if($zip = new PclZip($name)) {
- if($list = $zip->listContent()) {
- if($res == 2) {
- echo 'Файлы извлечены!<br>В папку:<br>'.str_replace('$', '$', htmlspecialchars($pk, ENT_QUOTES)).'<br>---<br>'; }
- if($res == 3) {
- echo 'Разархивирован!<br>В папку:<br>'.str_replace('$', '$', htmlspecialchars($pk, ENT_QUOTES)).'<br>---<br>'; }
- if($res == 1) {
- echo 'Произошла ошибка..<br>---<br>'; }
- $ct = count($list);
- $allp = ceil($ct/ONPAGE);
- if($p > $allp) {
- $p = 1; }
- $ot = intval(ONPAGE * ($p - 1));
- if(($ot < 0)||($ot >= $ct)) { $ot = 0; }
- $do = intval(ONPAGE * $p);
- if(($do < 1)||($do > $ct)) { $do = $ct; }
- echo '</small></p>';
- echo '<form action="'.SURL.'/?ref='.$ref.'" method="get">'.
- '<p align="left">'.
- '<input type="hidden" name="mod" value="4">'.
- '<input type="hidden" name="log" value="'.$log.'">'.
- '<input type="hidden" name="pas" value="'.$pas.'">'.
- '<input type="hidden" name="p" value="'.$p.'">'.
- '<small>';
- for($i = $ot; $i < $do; $i++) {
- echo '<input type="checkbox" name="files[]" value="'.rawurlencode($list[$i]['filename']).'"><br>';
- if(intval($list[$i]['folder']) == 0) {
- $sz = $list[$i]['compressed_size'];
- $szc = @rsz($sz);
- $sz = $list[$i]['size'];
- $szd = @rsz($sz);
- echo '> <u><a href="'.SURL.'/?mod=5&name='.$rname.'&file='.rawurlencode(str_replace('.htaccess', '.|htaccess', $list[$i]['filename'])).'&p='.$p.'&log='.$log.'&pas='.$pas.'&ref='.$ref.'">'.str_replace('$', '$', htmlspecialchars($list[$i]['filename'], ENT_QUOTES)).'</a></u><br>'.
- '> '.$szc.' / '.$szd.'<br>';
- } else {
- echo '> <u>'.str_replace('$', '$', htmlspecialchars($list[$i]['filename'], ENT_QUOTES)).'</u><br>'; }
- echo '> '.@gmdate('d.m.y, H:i:s', intval($list[$i]['mtime'] + (3600 * TCORR))).'<br>'; }
- echo '---<br>';
- if($p == 1) {
- $drs = 0; $fls = 0;
- $sz = 0;
- for($s = 0; $s < $ct; $s++) {
- if(intval($list[$s]['folder']) == 1) {
- $drs += 1; } else {
- $fls += 1; }
- $sz += $list[$s]['size']; }
- $unzsz = @rsz($sz);
- $sz = @filesize($name);
- $zipsz = @rsz($sz);
- echo 'Объектов: '.$ct.'.<br>Всего папок: '.intval($drs).'.<br>Всего файлов: '.intval($fls).'.<br>Размер в Zip: '.$zipsz.'.<br>Размер UnZip: '.$unzsz.'.<br>'; }
- unset($list);
- echo 'Стр.: ';
- for($str = 1; $str <= $allp; $str++) {
- if(($str <> $p)&&($str < $p - LPAGE)&&($str == 1)) {
- echo '<a href="'.SURL.'/?mod=1&name='.$rname.'&p='.$str.'&log='.$log.'&pas='.$pas.'&ref='.$ref.'">'.$str.'</a> .. '; }
- if(($str < $p)&&($str >= $p - LPAGE)) {
- echo '<a href="'.SURL.'/?mod=1&name='.$rname.'&p='.$str.'&log='.$log.'&pas='.$pas.'&ref='.$ref.'">'.$str.'</a> '; }
- if($str == $p) {
- echo '<b><u>'.$str.'</u></b> '; }
- if(($str > $p)&&($str <= $p + LPAGE)) {
- echo '<a href="'.SURL.'/?mod=1&name='.$rname.'&p='.$str.'&log='.$log.'&pas='.$pas.'&ref='.$ref.'">'.$str.'</a> '; }
- if(($str <> $p)&&($str > $p + LPAGE)&&($str == $allp)) {
- echo '.. <a href="'.SURL.'/?mod=1&name='.$rname.'&p='.$str.'&log='.$log.'&pas='.$pas.'&ref='.$ref.'">'.$str.'</a>'; }
- }
- echo '<br>---</small></p>'.
- '<p align="left" style="background-color: '.FORMS.'">'.
- '<small><u>Извлечь файлы в</u>:</small><br>'.
- '<textarea name="folder" title="Папка" cols="20" rows="4">../</textarea>'.
- '<input type="hidden" name="name" value="'.$rname.'">'.
- '<input type="submit" value="Выполнить!">'.
- '</p></form>'.
- '<form action="'.SURL.'/?ref='.$ref.'" method="get">'.
- '<p align="left" style="background-color: '.FORMS.'">'.
- '<input type="hidden" name="mod" value="3">'.
- '<input type="hidden" name="log" value="'.$log.'">'.
- '<input type="hidden" name="pas" value="'.$pas.'">'.
- '<input type="hidden" name="p" value="'.$p.'">'.
- '<small>---<br><u>Разархивировать в</u>:</small><br>'.
- '<textarea name="folder" title="Папка" cols="20" rows="4">../</textarea>'.
- '<input type="hidden" name="name" value="'.$rname.'">'.
- '<input type="submit" value="Выполнить!">'.
- '</p></form>'.
- '<p align="left"><small>';
- } else {
- echo 'Произошла ошибка:<br>"'.str_replace('$', '$', htmlspecialchars($zip->errorInfo(true), ENT_QUOTES)).'"...<br>';
- } } else {
- echo 'Произошла ошибка.<br>Просмотр невозможен.<br>';
- } } else {
- echo 'Произошла ошибка.<br>Архива несуществует.<br>';
- }
- echo '---<br><a href="'.SURL.'/?log='.$log.'&pas='.$pas.'&ref='.$ref.'">Меню</a><br>'.
- '---<br><a href="'.SURL.'/?ref='.$ref.'">Выход</a></small>'.
- '</p></body></html>';
- break;
- default:
- echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>'.
- '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'.
- '<title>Меню</title>'.
- '<style type="text/css">'.
- 'textarea, input, select { font-size: 10pt; }'.
- '</style></head><body bgcolor="'.FONS.'" link="'.LINKS.'" text="'.TEXTS.'">';
- if(($res >= 1)&&($res <= 5)&&($res <> 2)) {
- echo '<p align="left"><small>---<br>';
- if($res == 3) {
- echo 'Архив:<br>'.str_replace('$', '$', htmlspecialchars($name, ENT_QUOTES)).'<br>разархивирован<br>в папку:<br>'.str_replace('$', '$', htmlspecialchars($pk, ENT_QUOTES)).'<br>'; }
- if($res == 4) {
- echo 'Папка:<br>'.str_replace('$', '$', htmlspecialchars($name, ENT_QUOTES)).'<br>архивирована!<br>'; }
- if($res == 5) {
- echo 'Файл:<br>'.str_replace('$', '$', htmlspecialchars($name, ENT_QUOTES)).'<br>архивирован!<br>'; }
- if($res == 1) {
- echo 'Произошла ошибка..<br>'; }
- echo '</small></p>';
- }
- echo '<form action="'.SURL.'/?ref='.$ref.'" method="get">'.
- '<p align="left" style="background-color: '.FORMS.'">'.
- '<small>---<br><u>Относительный путь</u>:</small><br>'.
- '<textarea name="name" title="Путь" cols="20" rows="4">../</textarea><br>'.
- '<small><u>Разархивировать в</u>:</small><br>'.
- '<textarea name="folder" title="Папка" cols="20" rows="4">../</textarea><br>'.
- '<small><u>Режим</u>:</small><br>'.
- '<select name="mod">'.
- '<option value="1" selected>Просмотр архива</option>'.
- '<option value="3">Разархивация</option>'.
- '<option value="2">Архивация</option>'.
- '</select><br>'.
- '<input type="hidden" name="log" value="'.$log.'">'.
- '<input type="hidden" name="pas" value="'.$pas.'">'.
- '<input type="hidden" name="un" value="1">'.
- '<input type="submit" value="Выполнить!">'.
- '</p></form>';
- echo '<p align="left">'.
- '<small>---<br><a href="'.SURL.'/?ref='.$ref.'">Выход</a></small>'.
- '</p></body></html>';
- break; }
- ?>