Файл: pan/viewfile.php
Строк: 120
<?php
/*
Автор скрипта: Juse
Модификация: Jahak
*/
include_once "config.php";
include_once "head.php";
if (!isset($_GET['action'])){
echo '<div class="rmenu"><b>Ошибка! Не выбранна команда!</b></div>';
include_once "foot.php";
exit;
}
if (!file_exists($_GET['fid'])){
echo '<div class="rmenu"><b>Ошибка! Файл не найден!</b></div>';
include_once "foot.php";
exit;
}
if ($_GET['action']=="delfile"){
if ($_GET['r']=="1"){
if (unlink($_GET['fid'])){
echo '<div class="list2">Файл успешно удалён!</div>';
} else {
echo '<div class="rmenu">Ошибка удаления файла!</div>';
}
} else {
$_GET['fid'] = str_replace('/', '%2f', $_GET['fid']);
echo '<div class="bmenu">Файл: <b>'.$_GET['fid'].'</b></div><div class="list2"><b>Вы подтверждаете что хотите удалить файл?</b><br /><a href="?action=delfile&r=1&fid='.$_GET['fid'].'">Да</a> / <a href="index.php?action=viewfile&fid='.$_GET['fid'].'">Нет</a></div>';
}
}
if($_GET['action']=="rar_view"){
if(preg_match("/h2m.ru/i",$_SERVER['HTTP_HOST'])){
echo 'Извените, но ваш хостинг не поддерживает такую функцию.';
} else {
function sizer($s) {
$o=1;
while($s>1024) {
$s = round($s / 1024, 1);
$o++;
} switch($o) {
case(1): $o='b';
break;
case(2): $o='Kb';
break;
case(3): $o='Mb';
break;
case(4): $o='Gb';
break;
} return $s.$o;
}
$filepath = str_replace('%2f','/',$_GET['fid']);
$rar = rar_open($filepath) or die('<div class="rmenu">Ошибка открытия RAR архива</div>');
$list = rar_list($rar);
$c = count($list); echo 'Обьектов: '.$c.'<hr/>';
for($i = 0; $i<$c; $i++) {
echo $list[$i]->name.' ['.sizer($list[$i]->unpacked_size).'/'.sizer($list[$i]->packed_size).']<br />';
}
rar_close($rar);
}
}
if ($_GET['action']=="rename"){
$_GET['fid'] = str_replace("%2f", "/", $_GET['fid']);
$exp = dirname(realpath($_GET['fid']));
$exts = realpath($_GET['fid']);
$exti = str_replace($exp, $exts, $exts);
$ext = strtolower(substr($exti, 1 + strrpos($exti, "/")));
$_GET['fid'] = str_replace("/", "%2f", $_GET['fid']);
echo '<div class="bmenu">Файл: <b>'.$_GET['fid'].'</b></div>' .
'<div class="list2">' .
'<form action="?action=renamer&fid='.$_GET['fid'].'" method="post">' .
'Название файла:<br /><input type="hidden" name="starname" value="'.$ext.'" />' .
'<input name="newname" value="'.$ext.'" /><br />' .
'<input type="submit" value="Переименовать" />' .
'</form></div>' .
'<div class="menu"><a href="index.php?action=viewfile&fid='.$_GET['fid'].'">Назад</a></div>';
}
if ($_GET['action']=="renamer"){
if(eregi("/", $_POST['newname'])){
echo '<div class="rmenu">Ошибка! Не верное название файла! Допустимые символы: a-z _ 0-9 -</div>';
include_once "foot.php";
exit;
}
$a = str_replace($_POST['starname'], $_POST['newname'], $_GET['fid']);
if (rename($_GET['fid'],$a)){
echo 'Файл/Папка успешно переминована!';
} else {
echo '<div class="rmenu">Ошибка переименования Файла/Папки</div>';
}
}
if ($_GET['action']=="view"){
$file = file_get_contents($_GET['fid']);
/* echo '<div class="bmenu">Файл: <b>'.$_GET['fid'].'</b></div>
<div class="list2">'.highlight_string($file, true).'</div>
<div class="menu"><a href="index.php?action=viewfile&fid='.$_GET['fid'].'">Назад</a></div>'; */
include_once 'Core/geshi/geshi.php';
$sf = str_replace("../", "", $_GET['fid']);
?>
<div class="bmenu">
Файл: <b><?php echo $sf; ?></b>
</div>
<div class="list2">
<?php
$language = substr(strrchr($_GET['fid'], "."), 1);
$geshi = new GeSHi($file, $language);
$geshi->set_header_type(GESHI_HEADER_PRE_TABLE);
$geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS);
// $geshi->set_line_style('color: #003030;', 'font-weight: bold; color: #006060;', true);
// $geshi->set_code_style('color: #000020;', true);
$geshi->set_link_styles(GESHI_LINK, 'color: #000060;');
$geshi->set_link_styles(GESHI_HOVER, 'background-color: #f0f000;');
// $geshi->set_header_content('Тип файла: <LANGUAGE>, Время генерации: <TIME><hr noshade width="535">');
echo $geshi->parse_code();
?>
</div>
<div class="menu">
<a href="index.php?action=viewfile&fid=<?php echo $_GET['fid']; ?>">Назад</a>
</div>
<?php
include_once 'foot.php';
}
###############
if ($_GET['action']=="clearfile"){
if ($_GET['r']=="1"){
$fp = fopen($_GET['fid'], "w");
flock($fp, LOCK_EX);
fputs($fp, '');
flock($fp, LOCK_UN);
fclose($fp);
if ($fp){
echo '<b>Файл успешно очищен!</b><br />';
} else {
echo '<br />Ошибка очистки файла!';
}
} else {
$_GET['fid'] = str_replace('/', '%2f', $_GET['fid']);
echo '<div class="bmenu">Файл: <b>'.$_GET['fid'].'</b></div>' .
'<div class="list2"><b>Вы подтверждаете что хотите очистить файл?</b><br />' .
'<a href="?action=clearfile&r=1&fid='.$_GET['fid'].'">Да</a> / <a href="index.php?action=viewfile&fid='.$_GET['fid'].'">Нет</a></div>';
}
}
/* CHMOD */
// if ($_GET['action']=="chmod"){
// $_GET['fid'] = str_replace("%2f", "/", $_GET['fid']);
// $ext = substr(sprintf("%o", fileperms($_GET['fid'])), -3);
// $_GET['fid'] = str_replace("/", "%2f", $_GET['fid']);
// echo '<form action="?action=chmode&fid='.$_GET['fid'].'" method="post">
// <b>Права доступа</b><br />
// Chmod:<br /><input name="chmod" size="5" value="'.$ext.'">
// <input type="submit" value="Установить"/></form>';
// }
// if ($_GET['action']=="chmode"){
// $_GET['fid'] = str_replace("%2f", "/", $_GET['fid']);
// if(eregi("[^0-9]", $_POST['chmod'])){
// echo 'Не верно введены права доступа! Вводите только числа!';
// include_once "foot.php";
// exit;
// }
// $chmod = '0'.$_POST['chmod'];
// if (chmod($_GET['fid'], $chmod)){
// chmod($_GET['fid'], $chmod);
// echo 'Прова доступа установлены! ('.$_POST['chmod'].')<br />';
// } else {
// echo 'Ошибка установки прав доступа! Операция не позволяет! ('.$_POST['chmod'].')<br />';
// }
// }
if ($_GET['action']=="info"){
$sf = str_replace("../", "", $_GET['fid']);
echo '<div class="bmenu">Свойства файла: <b>'.$sf.'</b></div>' .
'<div class="list2">Размер: '.formatsize(filesize($_GET['fid'])).'<br />' .
'Права доступа: '.substr(sprintf("%o", fileperms($_GET['fid'])), -3).'<br />' .
'Група: '.filegroup($_GET['fid']).'<br />' .
'Владелец: '.fileowner($_GET['fid']).'<br />' .
'Время: '.maketime(filemtime($_GET['fid'])).'</div>' .
'<div class="menu"><a href="index.php?action=viewfile&fid='.$_GET['fid'].'">Назад</a></div>';
}
include_once "foot.php";