Просмотр файла down/apanel.php

Размер файла: 45.4Kb
<?php
#-----------------------------------------------------#
# ============ЗАГРУЗ-ЦЕНТР============= #
# 	 Автор : Sea #
# E-mail : [email protected] #
# ICQ : 355152215 #
# Вы не имеете права распространять данный скрипт. #
# 		По всем вопросам пишите в ICQ. #
#-----------------------------------------------------#

// mod Gemorroj
$HeadTime = microtime(true);

require 'moduls/config.php';
require 'moduls/fun.php';
require 'moduls/header.php';
//
$id = intval($_GET['id']);
//


mysql_query('UPDATE `loginlog` SET `time`="", `access_num`=0 WHERE `id` = 1');
$all = mysql_fetch_row(mysql_query('SELECT COUNT(`id`) FROM `loginlog`;'));
if ($all[0] > 21) {
    $min = mysql_fetch_row(mysql_query('SELECT MIN(`id`) FROM `loginlog` WHERE `id` > 1'));
    mysql_query('DELETE FROM `loginlog` WHERE `id` = ' . $min[0]);
}
###################################################
$error = 0;

if (AUT == 0) {
    $error = 1;
}

if ($_prava < 8) {
    $error = 1;
}

if ($error == 1) {
    die($setup['hackmess'] . '</body></html>');
}



###################ГЛАВНОЕ МЕНЮ####################
switch ($_GET['action']) {
default:
echo '<div class="for">Админка</div>
<div class="cont"><a href="apanel_index.php">Файловый менеджер</a></div>
<div class="cont"><a href="apanel_scan.php">Полное обновление БД</a></div>
<div class="cont"><a href="apanel.php?action=rot">Очистка БД от мусора</a></div>
<div class="cont"><a href="apanel.php?action=upload">Upload файлов</a></div>
<div class="cont"><a href="apanel.php?action=import">Импорт файлов</a></div>
<div class="cont"><a href="apanel.php?action=setting">Настройки</a></div>
<div class="cont"><a href="apanel.php?action=modules">Модули</a></div>
<div class="cont"><a href="apanel.php?action=sec">Безопасность</a></div>
<div class="cont"><a href="apanel.php?action=log">Лог авторизаций</a></div>
<div class="cont"><a href="apanel.php?action=id3">MP3 теги</a></div>
<div class="cont"><a href="apanel.php?action=mark">Маркер картинок</a></div>
<div class="cont"><a href="apanel.php?action=optm">Оптимизация БД</a></div>
<div class="cont"><a href="apanel.php?action=clean">Очистка БД</a></div>
<div class="cont"><a href="apanel.php?action=cleankomm">Очистка комментариев</a></div>';
break;


case 'mark':
if(!$_POST){
echo '<div class="gt">Маркер картинок<br>На картинки будет нанесена указанная надпись, удалить ее будет невозможно<br></div>
<div class="cont">
<form action="apanel.php?action=mark" method="post">
Надпись<br>
<input name="text" type="text"><br>
Расположение<br>
<select name="y">
<option value="top">вверху</option>
<option value="foot">внизу</option>
</select><br>
Шрифт<br>
<input name="size" type="text" size="3" maxlength="1" value="2"><br>
Цвет<br>
<input name="color[]" type="text" size="3" maxlength="3" value="200">
<input name="color[]" type="text" size="3" maxlength="3" value="200">
<input name="color[]" type="text" size="3" maxlength="3" value="200"><br>
<input class="buttom" type="submit" value="Готово">
</form>
</div>';
}
else{
@set_time_limit(0);

$q = mysql_query('SELECT `path` FROM `files` WHERE `path` LIKE "%.jpg" OR `path` LIKE "%.jpe" OR `path` LIKE "%.jpeg" OR `path` LIKE "%.gif" OR `path` LIKE "%.png"');
$all = mysql_num_rows($q);
$i = 0;
while($arr = mysql_fetch_row($q)){

$path = pathinfo($arr[0]);
if($path['extension'] == 'gif'){
$pic = imagecreatefromgif($arr[0]);
$f = 'imagegif';
}
elseif($path['extension'] == 'png'){
$pic = imagecreatefrompng($arr[0]);
$f = 'imagepng';
}
elseif($path['extension'] == 'jpg' || $path['extension'] == 'jpe' || $path['extension'] == 'jpeg'){
$pic = imagecreatefromjpeg($arr[0]);
$f = 'imagejpeg';
}
if($pic) {
    // цвет
    $color = imagecolorallocate($pic, $_POST['color'][0], $_POST['color'][1], $_POST['color'][2]);
    
    // верх/низ
    if ($_POST['y'] == 'foot') {
        $y = imagesy($pic) - ($_POST['size'] * 8);
    } else {
        $y = 1;
    }

    imagestring($pic, $_POST['size'], (imagesx($pic)/2) - (strlen($_POST['text']) * 3), $y, $_POST['text'], $color);
    
    if ($f($pic, $arr[0])) {
        $i++;
    }
}
$pic = null;
}

echo 'Всего картинок: '.$all.', промаркерованы: '.$i;
}
break;


// редактор MP3 тегов
case 'id3':

include 'moduls/id.php';
$id3 = new MP3_Id();
$genres = $id3->genres();

if(!$_POST){

if($id) {
$tmp = mysql_fetch_row(mysql_query('SELECT `path` FROM `files` WHERE `id`='.$id.' LIMIT 1'));
$id3->read($tmp[0]);

function code($str) {
    $charset = strtolower(mb_detect_encoding($str, 'UTF-8, Windows-1251'));
    if ($charset != 'utf-8') {
        $str = iconv('windows-1251', 'utf-8', $str);
    }
    return $str;
}

$name = code($id3->name);
$artists = code($id3->artists);
$album = code($id3->album);
$year = code($id3->year);
$track = code($id3->track);
$genre = code($id3->genre);
$comment = code($id3->comment);


echo '<div class="gt">Редактор MP3 тегов<br></div>
<div class="cont">
<form action="apanel.php?action=id3&amp;id='.$id.'" method="post">
Название<br>
<input name="name" type="text" value="'.$name.'"><br>
Артист<br>
<input name="artists" type="text" value="'.$artists.'"><br>
Альбом<br>
<input name="album" type="text" value="'.$album.'"><br>
Год<br>
<input name="year" type="text" value="'.$year.'"><br>
Трек<br>
<input name="track" type="text" value="'.$track.'"><br>
Жанр<br>
<select name="genre"><option value="'.$genre.'">'.$genre.'</option>';

foreach($genres as $var){
    if($var == $genre){
        continue;
    }
    $var = htmlspecialchars($var);
    echo '<option value="'.$var.'">'.$var.'</option>';
}

echo '</select><br>
Комментарии<br>
<textarea name="comment" rows="2" cols="32">'.$comment.'</textarea><br>
<input class="buttom" type="submit" value="Задать">
</form>
</div>';
}
else{
echo '<div class="gt">Модуль задаст всем MP3 файлам указанные теги. Если поле пустое, то тег изменяться не будет<br></div>
<div class="cont">
<form action="apanel.php?action=id3" method="post">
Название<br>
<input name="name" type="text"/><br>
Артист<br>
<input name="artists" type="text"/><br>
Альбом<br>
<input name="album" type="text"/><br>
Год<br>
<input name="year" type="text"/><br>
Трек<br>
<input name="track" type="text"/><br>
Жанр<br>
<select name="genre"><option value=""></option>';

foreach($genres as $var){
    $var = htmlspecialchars($var);
    echo '<option value="'.$var.'">'.$var.'</option>';
}

echo '</select><br>
Комментарии<br>
<textarea name="comment" rows="2" cols="32"></textarea><br>
<input class="buttom" type="submit" value="Задать">
</form>
</div>';
}
}
else{
if($id){
$tmp = mysql_fetch_row(mysql_query('SELECT `path` FROM `files` WHERE `id`='.$id.' LIMIT 1'));
$id3->read($tmp[0]);

$id3->name = iconv('utf-8','windows-1251',$_POST['name']);
$id3->artists = iconv('utf-8','windows-1251',$_POST['artists']);
$id3->album = iconv('utf-8','windows-1251',$_POST['album']);
$id3->year = iconv('utf-8','windows-1251',$_POST['year']);
$id3->track = iconv('utf-8','windows-1251',$_POST['track']);
$id3->genre = iconv('utf-8','windows-1251',$_POST['genre']);
$id3->comment = iconv('utf-8','windows-1251',$_POST['comment']);

$id3->write();

echo 'Теги изменены';
}
else{
$arr = array();

$q = mysql_query('SELECT TRIM(`path`) FROM `files`');
while($f = mysql_fetch_row($q)){
    if(strtoupper(strrchr($f[0],'.'))=='.MP3'){
        $arr[] = $f[0];
    }
}

if($_POST['name']!=''){
$_POST['name'] = iconv('utf-8','windows-1251',$_POST['name']);
}
if($_POST['artists']!=''){
$_POST['artists'] = iconv('utf-8','windows-1251',$_POST['artists']);
}
if($_POST['album']!=''){
$_POST['album'] = iconv('utf-8','windows-1251',$_POST['album']);
}
if($_POST['year']!=''){
$_POST['year'] = iconv('utf-8','windows-1251',$_POST['year']);
}
if($_POST['track']!=''){
$_POST['track'] = iconv('utf-8','windows-1251',$_POST['track']);
}
if($_POST['genre']!=''){
$_POST['genre'] = iconv('utf-8','windows-1251',$_POST['genre']);
}
if($_POST['comment']!=''){
$_POST['comment'] = iconv('utf-8','windows-1251',$_POST['comment']);
}

$all = sizeof($arr);
for($i=0; $i<=$all; ++$i){
$id3->read($arr[$i]);

if($_POST['name']!=''){
$id3->name = $_POST['name'];
}
if($_POST['artists']!=''){
$id3->artists = $_POST['artists'];
}
if($_POST['album']!=''){
$id3->album = $_POST['album'];
}
if($_POST['year']!=''){
$id3->year = $_POST['year'];
}
if($_POST['track']!=''){
$id3->track = $_POST['track'];
}
if($_POST['genre']!=''){
$id3->genre = $_POST['genre'];
}
if($_POST['comment']!=''){
$id3->comment = $_POST['comment'];
}
$id3->write();
}

print 'Теги заданы для '.$all.' файлов';
}
}
break;



#########################################ДОБАВЛЕНИЕ И ИЗМЕНЕНИЕ ОПИСАНИЯ#########################################
case 'fast':

$file = mysql_fetch_array(mysql_query('SELECT * FROM `files` WHERE `id` = '.$id));
if(!$_POST)
{
echo '<div class="gt">Быстрое описание '.$file['name'].':</div>
<div class="cont">
<form action="apanel.php?action=fast&amp;id='.$id.'" method="post">
<textarea class="enter" cols="70" rows="10" name="text">'.htmlspecialchars($file['fastabout']).'</textarea><br><br>
<input name="tr" type="checkbox" value="1">Добавить в основное описание<br>
<input class="buttom" type="submit" value="Написать">
</form></div>';
}
else
{
if($_POST['text']=='') $res='удалено!'; else $res='добавлено!';
$filename = pathinfo($file['path']);
$dir = $filename['dirname'];
if(intval($_POST['tr']) == 1){
mysql_query("UPDATE `files` SET about='".bbcode(clean($_POST['text']))."' WHERE `id` = ".$id);
}
mysql_query("UPDATE `files` SET fastabout='".bbcode(clean($_POST['text']))."' WHERE `id` = ".$id);
echo 'Быстрое описание '.$res.'<br><a href="apanel_view.php?id='.$id.'">К описанию</a>';
}
break;

######################################ЛОГ######################################################
case 'pos':
$file_info = mysql_fetch_assoc(mysql_query('SELECT `name`,`path` FROM `files` WHERE `id`='.$id));
if(!is_dir($file_info['path'])) die('Ошибка');
$file_info['name'] = str_replace('*','',$file_info['name']);
if($_GET['to'] == 'down'){
$query = 'UPDATE `files` SET `priority`=`priority`-1 WHERE `id` = '.$id;
}
elseif($_GET['to'] == 'up'){
$query = 'UPDATE `files` SET `priority`=`priority`+1 WHERE `id` = '.$id;
}
if(mysql_query($query)){
echo '<div class="gt">Приоритет каталога '.$file_info['name'].' изменен!</div>';
}
else{
echo '<div class="gt">Ошибка при изменении приоритета</div>';
}
break;

######################################ЛОГ######################################################
case 'rot':
$delfiles = 0;
$reses = mysql_query('SELECT `id`,`path` FROM `files`');
while($array = mysql_fetch_assoc($reses)){
$array_path[$array['id']] = $array['path'];
}
foreach($array_path as $key=>$value){
if(file_exists($value)==false ){
$res = mysql_query('DELETE FROM `files` WHERE `id` = '.$key);
$res = mysql_query('DELETE FROM `komments` WHERE `file_id` = '.$key);
$delfiles++;
}
}
echo '<div class="gt">База данных успешно обновлена!</div><div class="cont">Удалено неверных записей: '.$delfiles.'</div>';
break;

######################################ЛОГ######################################################
case 'editabout':
$file_info = mysql_fetch_assoc(mysql_query('SELECT `id`,`fastabout`,`name`,`path` FROM `files` WHERE `id` = '.$id));
$file_info['name'] = str_replace('*','',$file_info['name']);
if(!is_dir($file_info['path']) and !is_file($file_info['path'])) die('Ошибка</body></html>');
if(!$_POST){
echo '<div class="gt">Описание файла '.$file_info['name'].':</div>
<div class="cont">
<form action="apanel.php?action=editabout&amp;id='.$id.'" method="post">
<textarea class="enter" cols="50" rows="7" name="text">'.htmlspecialchars($file_info['fastabout']).'</textarea><br><br>
<input class="buttom" type="submit" value="Добавить">
</form>
</div>';
}
else{
mysql_query("UPDATE `files` SET fastabout='".bbcode(clean($_POST['text']))."' WHERE `id` = ".$id);
echo 'Быстрое описание изменено!';
}
break;

######################################ЛОГ######################################################
case 'flash':
$file_info = mysql_fetch_assoc(mysql_query('SELECT `path` FROM `files` WHERE `id` = '.$id.' AND `size` = 0'));
if(!is_dir($file_info['path'])) die('Такой категории не существует.</body></html>');
function scaner ($paths)
{
$paths = $paths.'/*';
$array = glob($paths);
static $file_aray;
foreach($array as $vv)
{
if(is_dir($vv)){
$file_aray[] = $vv.'/';
scaner($vv);
}
else{
if(basename($vv)=='folder.png') continue;
$file_aray[] = $vv;
}
}
return $file_aray;
}
$file_array = scaner(mb_substr($file_info['path'],0,mb_strlen($file_info['path'])-1));
$addfolder = $addfiles = 0;
$reses = mysql_query('SELECT `id`,`path` FROM `files`');
while($array = mysql_fetch_assoc($reses)){
$array_path[$array['id']] = $array['path'];
}
foreach($file_array as $value){
if(@in_array($value,$array_path)===false)
{
$upltime = filectime($value);
$name = basename($value);
$pathinfo = pathinfo($value);
$ext = $pathinfo['extension'];
$name = str_replace('.'.$ext,'',$name);
$infolder = dirname($value).'/';
$size = filesize($value);
if(strpos($name , '!') !== false){
$name = trans($name);
}
else{
$name = trans2($name);
}
if(is_dir($value)){
$query = mysql_query("INSERT INTO `files` (`path`, `name`, `infolder`, `timeupload`, `loads`, `yes` ) VALUES ('$value', '*".$name."', '$infolder', '9999999999', '9999999999', '9999');"); $addfolder++;
}
else{
$query = mysql_query("INSERT INTO `files` (`path`, `name`, `infolder`, `size` , `timeupload`) VALUES ('$value', '$name', '$infolder' , '$size' , '$upltime');");
$addfiles++;
}
}
}
echo '<div class="gt">База данных успешно обновлена!</div><div class="cont">Добавлено папок: '.$addfolder.' <br>Добавлено файлов: '.$addfiles.'</div>';
break;

######################################ЛОГ######################################################
case 'log':
$query = mysql_query('SELECT * FROM `loginlog` WHERE `id` > 1 ORDER BY `time` DESC;');
echo '<div class="gt">Лог последних 20 посещений админки([UserAgent][IP][Time]):</div><div class="cont">';
while($log = mysql_fetch_assoc($query)){
echo '<strong>[</strong>'.$log['ua'].'<strong>][</strong>'.$log['ip'].'<strong>][</strong>'.date('d.m.Y (H:i)',$log['time']).'<strong>]</strong><br>';
}
echo '</div>';
break;

######################################ЛОГ######################################################
case 'addico':
$file_info = mysql_fetch_assoc(mysql_query('SELECT * FROM `files` WHERE `id` = '.$id));
if(!$_FILES)
{
echo '<div class="gt">Загрузка иконки к папке</div>
<div class="cont">
<form action="apanel.php?action=addico&amp;id='.$id.'" method="post" enctype="multipart/form-data">
Файл будет скопирован в назначеную папку:<br>
<input name="ico" type="file"><br>
<input class="buttom" type="submit" value="Добавить">
</form>
</div>';
}
else
{
$name = $_FILES['ico']['name'];
$ext = pathinfo($name);
$ext = strtolower($ext['extension']);
$to = $file_info['path'].'folder.png';
if($ext=='php' or $ext=='php3' or $ext=='php4' or $ext=='php5' or $ext=='php6' or $ext=='phtml' or $ext=='cgi' or $ext=='asp' or $ext=='js' or $ext=='phtm' or $ext=='py' or $ext=='pl') die ($setup['hackmess']);
if($ext!='png') die('Поддерживаются иконки только png формата');
if(file_exists($to)) die('Файл уже существует');
chmod($file_info['path'], 0777);
if(move_uploaded_file($_FILES['ico']['tmp_name'], $to))
{
echo 'Закачка иконки прошла успешно.<br>';
chmod($to, 0644);
}
else{
echo 'Закачка иконки окончилась неудачно.<br>';
//chmod($file_info['path'], 0777);
}
}
break;

######################################ЛОГ######################################################
case 'reico':
$file_info = mysql_fetch_assoc(mysql_query('SELECT * FROM `files` WHERE `id` = '.$id));
if(!file_exists($file_info['path'].'folder.png')) die('Иконки к данной папке не существует');
chmod($file_info['path'].'folder.png',0777);
if(unlink($file_info['path'].'folder.png')) echo 'Удаление иконки прошло успешно.<br>';
else echo 'Удаление иконки окончилось неудачно.<br>';
break;

######################################РАСПАКОВЩИК###############################################
case 'unpack':
$file = mysql_fetch_assoc(mysql_query('SELECT * FROM `files` WHERE `id` = '.$id));
$dir = dirname($file['path']).'/';
chmod($folder['path'], 0777);
include 'moduls/pclzip.lib.php';
$zip = new PclZip($file['path']);
if(!$zip->extract(PCLZIP_OPT_PATH, $dir)) die('Ошибка при распаковке.'); else die('Ахрив распакован в '.$dir.'<br>Не забудьте обновить БД.');
chmod($folder['path'], 0777);
break;

######################################УДАЛЕНИЕ ПАПКИ######################################################
case 'redir':
if($setup['delete_dir']==0) {
    die($setup['hackmess'].'</body></html>');
}
if(!$_GET['level']){
echo 'Будут удалены все файлы в каталоге,а также сам каталог. Продолжить?<br><a href="apanel.php?action=redir&amp;level=1&amp;id='.$id.'">Да, продолжить</a>';
}
else{
$file = mysql_fetch_assoc(mysql_query('SELECT * FROM `files` WHERE `id` = '.$id.' ORDER BY `name`'));
if(!is_dir ($file['path'])) die('Такой категории не существует!</body></html>');

$ex = explode('/',$file['path']);
$f_chmod = null;
foreach($ex as $chmod){
$f_chmod.=$chmod.'/';
chmod($f_chmod,0777);
}

$array = glob($file['path'].'*');
foreach($array as $vv){
if(is_dir($vv)) die('Разрешено удалять только папки с 1 уровнем вложенности!</body></html>');
else{
if(!unlink($vv)) die('Ошибка при удалении файла '.$vv.'</body></html>');
}
}
$query = mysql_query("DELETE FROM `files` WHERE `infolder` = '".$file['path']."'") or die('Ошибка при удалении файлов из базы</body></html>');

if(!rmdir($file['path'])) die('Ошибка при удалении каталога</body></html>');
$query = mysql_query('DELETE FROM `files` WHERE `id` = '.$id) or die('Ошибка при удалении каталога из базы</body></html>');


$f_chmod = null;
foreach($ex as $chmod){
$f_chmod.=$chmod.'/';
if($f_chmod!=$setup['path'].'/'){
chmod($f_chmod.'/',0777);
}
}


echo 'Каталог успешно удален!';
}
break;

######################################УДАЛЕНИЕ ФАЙЛА###############################################
case 'refile':
if($setup['delete_dir']==0) die($setup['hackmess'].'</body></html>');
$file = mysql_fetch_assoc(mysql_query('SELECT * FROM `files` WHERE `id` = '.$id.' ORDER BY `name`'));
if(!is_file($file['path'])) die('Такого файла не существует!</body></html>');


$ex = explode('/',$file['path']);
$f_chmod = null;
foreach($ex as $chmod){
$f_chmod.=$chmod;
if(is_dir($f_chmod)){
$f_chmod = $f_chmod.'/';
}

chmod($f_chmod,0777);
}

if(!unlink($file['path'])) die('Ошибка при удалении файла '.$file['path'].'</body></html>');
$query = mysql_query('DELETE FROM `files` WHERE `id` = '.$id) or die('Ошибка при удалении файла из базы</body></html>');

$f_chmod = null;
foreach($ex as $chmod){
$f_chmod.=$chmod;
if(is_dir($f_chmod)){
$f_chmod = $f_chmod.'/';
}

if($f_chmod!=$setup['path'].'/'){
chmod($f_chmod,0777);
}
}

echo 'Файл <strong>'.$file['name'].'</strong> удален!';
break;

######################################ПЕРЕИМЕНОВАНИЕ##################################################
case 'rename':

$file = mysql_fetch_assoc(mysql_query('SELECT * FROM `files` WHERE `id` = '.$id));
if(!$_POST)
{
if(is_dir($file['path'])) $file['name'] = str_replace('*','',$file['name']);
echo '<div class="gt">Введите новое имя:</div>
<div class="cont">
<form method="post" action="apanel.php?action=rename&amp;id='.$id.'"">
<input class="enter" type="text" name="newname" size="70" value="'.$file['name'].'"><br>
<input class="buttom" type="submit" value="Готово" >
</form></div>';
}
else
{
$newname = clean(del($_POST['newname']));
if(is_dir($file['path'])) $newname = '*'.$newname;
mysql_query("UPDATE `files` SET name='".$newname."' WHERE `id` = ".$id);
$error = mysql_error();
if($error) die('Ошибка при переименовании.<br>'.$error.'</body></html>');
echo 'Файл переименован.';
}
break;

#########################################ОЧИСТКА КОММЕНТОВ К ФАЙЛУ#########################################
case 'clearkomm':
$query = mysql_query('DELETE FROM `komments` WHERE `file_id` = '.$id);
$error = mysql_error();
if($error) die('Ошибка при сбросе.<br>'.$error.'</body></html>');
echo 'Комментарии удалены.';
break;

##############################################ОЧИСТКА РЕЙТИНГА К ФАЙЛУ#######################################
case 'cleareval':
$query = mysql_query('UPDATE `files` SET `ips`="",`yes`=0,`no`=0 WHERE `id` = '.$id);
$error = mysql_error();
if($error) die('Ошибка при сбросе.<br>'.$error.'</body></html>');
echo 'Рейтинг удален.';
break;

#############################################ОПТИМИЗАЦИЯ БД###########################################
case 'optm':
mysql_query('OPTIMIZE TABLE `files`;');
mysql_query('OPTIMIZE TABLE `komments`;');
mysql_query('OPTIMIZE TABLE `loginlog`;');
mysql_query('OPTIMIZE TABLE `online`;');
mysql_query('OPTIMIZE TABLE `setting`;');
echo 'Базы данных оптимизированы.';
break;

################################################ОЧИСТКА БД########################################
case 'clean':
if(!$_GET['level'])
{
echo 'Будут удалены все данные БД, включая описания,счетчики закачек,рейтинги и комментарии.Продолжить?<br><a href="apanel.php?action=clean&amp;level=1">Да, продолжить</a>';
}
else
{
mysql_query('TRUNCATE TABLE `files`;');
mysql_query('TRUNCATE TABLE `komments`;');

echo 'Базы данных очищены.<br>';
}
break;

##########################################ОЧИСТКА ВСЕХ КОММЕНТОВ##############################################
case 'cleankomm':
if(!$_GET['level']){
echo 'Будут удалены все комментарии к файлам! Продолжить?<br><a href="apanel.php?action=cleankomm&amp;level=1">Да, продолжить</a>';
}
else{
mysql_query('TRUNCATE TABLE `komments`');
echo 'База данных комментариев очищена.<br>';
}
break;

#########################################ДОБАВЛЕНИЕ И ИЗМЕНЕНИЕ ОПИСАНИЯ#########################################
case 'about':

$file = mysql_fetch_assoc(mysql_query('SELECT * FROM `files` WHERE `id` = '.$id));
if(!$_POST)
{
echo '<div class="gt">Описание файла '.$file['name'].':</div>
<div class="cont">
<form action="apanel.php?action=about&amp;id='.$id.'" method="post">
<textarea class="enter" cols="70" rows="10" name="text">'.htmlspecialchars($file['about']).'</textarea><br><br>
<input class="buttom" type="submit" value="Написать"></form></div>';
}
else
{
if($_POST['text']=='') $res='удалено'; else $res='добавлено';
$filename = pathinfo($file['path']);
$dir = $filename['dirname'];
$back = mysql_fetch_assoc(mysql_query("SELECT `id` FROM `files` WHERE `path` = '".bbcode(clean($dir))."';"));
$write_bd = mysql_query("UPDATE `files` SET about='".bbcode(clean($_POST['text']))."' WHERE `id` = ".$id);
echo 'Описание '.$res.'
<br><a href="apanel_index.php?id='.$back['id'].'">Файл-менеджер</a>
<br><a href="apanel_view.php?id='.$id.'">К описанию</a>';
}
break;

#########################################ИМПОРТ####################################################################
case 'import':
if(!$_POST)
{
$dirs = mysql_query('SELECT `path` FROM `files` WHERE `size` = 0');
echo '<div class="gt">Импорт файлов</div>
<div class="cont">
Сохранить в:<br>
<form action="apanel.php?action=import" method="post">
<select class="buttom" size="1" width="70" name="topath"><option value="'.$setup['path'].'/">./</option>';
while($item = mysql_fetch_assoc($dirs)){
$name = str_replace($setup['path'].'/','',$item['path']);
$path = explode('/',$name);
$option = '';
unset($path[sizeof($path)-1]);
foreach($path as $value){
if(strpos($value , '!') !== false) $name = trans($value); else $name = $value;
$option = $option.$name.'/';
}
echo '<option value="'.$item['path'].'">'.$option.'</option>';
}

echo '</select><br>
Файлы:<br>
<textarea class="enter" cols="70" rows="10" name="files"></textarea><br><br>
<input class="buttom" type="submit" value="Импорт">
</form></div>';
}
else
{
$newpath = trim($_POST['topath']);
if(empty($newpath)){
	die('Нет конечного пути! '.$newpath.'</body></html>');
}
$text = explode("\n",$_POST['files']);
for($i=0, $all=sizeof($text); $i<$all; ++$i){
    $ex = pathinfo($text[$i]);
    $ext = strtolower($ex['extension']);
    $to = $newpath.$ex['basename'];
    
    if(file_exists($to)) {
        die('Файл '.$to.' уже существует</body></html>');
    }
    
    if($ext=='php' or $ext=='php2' or $ext=='php3' or $ext=='php4' or $ext=='php5' or $ext=='php6' or $ext=='phtml' or $ext=='cgi' or $ext=='asp' or $ext=='js' or $ext=='phtm' or $ext=='py' or $ext=='pl') die ($setup['hackmess'].'</body></html>');
    chmod($newpath, 0777);
    
    @ini_set('user_agent', $_SERVER['HTTP_USER_AGENT']);
    if(copy($text[$i], $to)) {
        echo 'Импорт файла ' . htmlspecialchars($text[$i], ENT_NOQUOTES) . ' удался<br>';
        $upltime = filectime($to);
        $ex = pathinfo($to);
        $name = str_replace('.'.$ex['extension'],'',basename($to));
        if(strpos($name , '!') !== false){
            $name = trans($name);
        } else {
            $name = trans2($name);
        }
        $size = filesize($to);
        $infolder = dirname($to).'/';
        mysql_query("INSERT INTO `files` (`path`, `name`, `infolder`, `size` , `timeupload`) VALUES ('$to', '$name', '$infolder' , '$size' , '$upltime');");
    } else {
        if (isset($php_errormsg) && $php_errormsg) {
            $err = $php_errormsg;
        } else {
            $err = error_get_last();
            $err = $err['message'];
        }
        echo 'Импорт файла ' . htmlspecialchars($text[$i], ENT_NOQUOTES) . ' не удался<br/>' . $err . '<br/>';
    }
}
chmod($newpath, 0777);
}
break;

#####################################АПЛОАД скрина###################################################
case 'screen':
$info = mysql_fetch_assoc(mysql_query('SELECT * FROM `files` WHERE `id` = '.$id));
$info['path'] = strstr($info['path'],'/'); // убираем папку с загрузками
$to = $setup['spath'].$info['path'].'.gif'; // имя конечного файла

if(!$_FILES)
{
echo '<div class="gt">Загрузка скрина</div>
<div class="cont">
<form action="apanel.php?action=screen&amp;id='.$id.'" method="post" enctype="multipart/form-data">
Файл будет скопирован в папку со скриншотами:<br>
<input name="scr" type="file"><br>
<input class="buttom" type="submit" value="Добавить">
</form>';
}
else
{
$name = htmlspecialchars($_FILES['scr']['name']);
$ex = pathinfo($name);
$ext = strtolower($ex['extension']);

if($ext!='gif' && $ext!='jpg' && $ext!='jpe' && $ext!='jpeg' && $ext!='png') die('Поддерживаются скриншоты только gif, jpeg, png форматов</body></html>');
//if(file_exists($to)) die('Файл уже существует</body></html>');
chmod($setup['spath'], 0777);

//
$dirs = explode('/',$to);
$all = sizeof($dirs)-1;

$tmp = $setup['spath'].'/';
for($i=1; $i<$all; ++$i){
$tmp.= $dirs[$i].'/';
mkdir($tmp,0777);
chmod($tmp,0777); // fix
}
//

if(move_uploaded_file($_FILES['scr']['tmp_name'], $to)){
echo 'Закачка скрина '.$name.' прошла успешно.<br>';

chmod($to,0666);

if($ext=='jpg' || $ext=='jpe' || $ext=='jpeg'){
$im = imagecreatefromjpeg($to);
imagegif($im,$to);
imagedestroy($im);
}
elseif($ext=='png'){
$im = imagecreatefrompng($to);
imagegif($im,$to);
imagedestroy($im);
}

}
else{
echo 'Закачка скрина '.$name.' окончилась неудачно.<br>';
}
}
break;

#####################################АПЛОАД###################################################
case 'upload':
if(!$_POST)
{
$dirs = mysql_query('SELECT `path` FROM `files` WHERE `size` = 0');

echo '<div class="gt">Upload файлов (max '.ini_get('upload_max_filesize').')</div>
<div class="cont">
Сохранить в:<br>
<form action="apanel.php?action=upload" method="post" enctype="multipart/form-data">
<select class="buttom" size="1" width="70" name="topath"><option value="'.$setup['path'].'/">./</option>';
while($item = mysql_fetch_assoc($dirs))
{
$name = str_replace($setup['path'].'/','',$item['path']);

$path = explode('/',$name);
$option = '';
unset($path[sizeof($path)-1]);
foreach($path as $value)
{
if(strpos($value , '!') !== false) $name = trans($value); else $name = $value;
$option = $option.$name.'/';
}
echo '<option value="'.$item['path'].'">'.$option.'</option>';
}
echo '</select><br>
Добавить файлы:<br>
<input name="userfile[]" type="file"><br>
<input name="userfile[]" type="file"><br>
<input name="userfile[]" type="file"><br>
<input name="userfile[]" type="file"><br>
<input name="userfile[]" type="file"><br>
<input class="buttom" type="submit" value="Добавить">
</form>';
}
else
{
$newpath = trim($_POST['topath']);
if(empty($newpath)){
	die ('Нет конечного пути! '.$newpath);
}
for($i=0; $i<$a=sizeof($_FILES['userfile']['name']); $i++)
{
if(empty($_FILES['userfile']['name'][$i])){
continue;
}
$name = $_FILES['userfile']['name'][$i];
$ex = pathinfo($name);
$ext = strtolower($ex['extension']);
$to = $newpath.$name;
if($ext=='php' or $ext=='php3' or $ext=='php4' or $ext=='php5' or $ext=='php6' or $ext=='phtml' or $ext=='cgi' or $ext=='asp' or $ext=='js' or $ext=='phtm' or $ext=='py' or $ext=='pl') die ($setup[hackmess]);
if(file_exists($to)) die('Файл уже существует');
chmod($newpath, 0777);
if(move_uploaded_file($_FILES['userfile']['tmp_name'][$i], $to))
{
echo 'Закачка файла '.$name.' прошла успешно.<br>';
$upltime = filectime($to);
$ex = pathinfo($to);
$ex = $ex['extension'];
$name = str_replace('.'.$ex,'',basename($to));
$size = filesize($to);
$infolder = dirname($to).'/';
if(strpos($name , '!') !== false){
$name = trans($name);
}
else{
$name = trans2($name);
}

mysql_query("INSERT INTO `files` (`path`, `name`, `infolder`, `size` , `timeupload`) VALUES ('$to', '$name', '$infolder' , '$size' , '$upltime');");
chmod($to, 0644);
}
else{
	echo 'Закачка файла '.$name.' окончилась неудачно.<br>';
}
}
chmod($newpath, 0777);
}
break;

######################################СОЗДАНИЕ НОВОГО КАТАЛОГА##############################################
case 'newdir':
if (!$_POST)
{
echo '<div class="gt">Создание новой категории:</div>
<div class="cont">
<form action="apanel.php?action=newdir&amp;id='.$id.'" method="post">
Имя новой папки:<br>
<input class="enter" name="dirnew" type="text" size="70" value=""><br>
<input name="tr" type="checkbox" value="1" checked="checked">Перевод (если имеются русские буквы - ВКЛЮЧИТЬ ОБЯЗАТЕЛЬНО!)<br>
<input class="buttom" type="submit" value="Добавить">
</form>';
} else {
    if (empty($_POST['dirnew'])) {
        die('Не заполнено поле!</body></html>');
    }
    $dirnew = clean(del($_POST['dirnew']));
    $name = '*' . $dirnew;
    
    if ($_POST['tr'] == 1) {
        $dirnew = '!' . retrans($dirnew);
    }
    if (!$id) {
        $d['path'] = $setup['path'] . '/';
    } else {
        $d = mysql_fetch_assoc(mysql_query('SELECT * FROM `files` WHERE `id` = ' . $id));
    }

    chmod($d['path'], 0777);
    $dirnew = trim($d['path']) . trim($dirnew) . '/';
    mkdir($dirnew, 0777);
    chmod($dirnew, 0777);
    
    if (!is_dir($dirnew)) {
    	exit('Не могу создать директорию. Проверьте права на запись.</body></html>');
    }

    if (mysql_num_rows(mysql_query('SELECT 1 FROM `files` WHERE `path` = "' . $dirnew . '"'))) {
        exit('Директория с указанным путем уже присутствует в БД</body></html>');
    }

    if (mysql_query("INSERT INTO `files` (`path`, `name`, `infolder`, `timeupload`) VALUES ('" . $dirnew . "', '" . $name . "', '" . $d['path'] . "', " . $_SERVER['REQUEST_TIME'] . ");")){
        // скриншоты
        $screen = $setup['spath'] . substr($dirnew, strlen($setup['path']));
        mkdir($screen, 0777);
        chmod($screen, 0777);
        
        // описания
        $desc = $setup['opath'] . substr($dirnew, strlen($setup['path']));
        mkdir($desc, 0777);
        chmod($desc, 0777);
        
        echo 'Новый каталог создан.';
    } else {
        echo '<div class="for">Ошибка при создании нового каталога.</div>';
    }
}
break;

#########################################ИЗМЕНЕНИЕ МОДУЛЕЙ###############################################
case 'modules':
if(!$_POST)
{
echo '<div class="gt">Управления модулями:</div>
<form action="apanel.php?action=modules" method="post">
<div class="cont">
<input name="eval_change" type="checkbox" value="ON" '.check($setup['eval_change']).'>Рейтинг<br>
<input name="jad_change" type="checkbox" value="ON" '.check($setup['jad_change']).'>Генератор Jad<br>
<input name="cut_change" type="checkbox" value="ON" '.check($setup['cut_change']).'>Нарезчик MP3<br>
<input name="zip_change" type="checkbox" value="ON" '.check($setup['zip_change']).'>Просмотр архивов<br>
<input name="zakaz" type="checkbox" value="ON" '.check($setup['zakaz']).'>Стол заказов<br>
<input name="buy_change" type="checkbox" value="ON" '.check($setup['buy_change']).'>Рекламный блок<br>
<input name="onpage_change" type="checkbox" value="ON" '.check($setup['onpage_change']).'>Меню выбора кол-ва файлов на страницу<br>
<input name="preview_change" type="checkbox" value="ON" '.check($setup['preview_change']).'>Меню выбора отображения предосмотра<br>
<input name="top_change" type="checkbox" value="ON" '.check($setup['top_change']).'>ТОП<br>
<input name="stat_change" type="checkbox" value="ON" '.check($setup['stat_change']).'>Статистика<br>
<input name="pagehand_change" type="checkbox" value="ON" '.check($setup['pagehand_change']).'>Ручной ввод страниц<br>
<input name="search_change" type="checkbox" value="ON" '.check($setup['search_change']).'>Поиск файлов<br><br>
<input class="buttom" type="submit" value="Сохранить">
</form>
</div>';
}
else
{
if ($_POST['komments_change'] == 'ON') $_POST['komments_change']=1; else $_POST['komments_change']=0;
if ($_POST['eval_change'] == 'ON') $_POST['eval_change']=1; else $_POST['eval_change']=0;
if ($_POST['onpage_change'] == 'ON') $_POST['onpage_change']=1; else $_POST['onpage_change']=0;
if ($_POST['preview_change'] == 'ON') $_POST['preview_change']=1; else $_POST['preview_change']=0;
if ($_POST['top_change'] == 'ON') $_POST['top_change']=1; else $_POST['top_change']=0;
if ($_POST['stat_change'] == 'ON') $_POST['stat_change']=1; else $_POST['stat_change']=0;
if ($_POST['search_change'] == 'ON') $_POST['search_change']=1; else $_POST['search_change']=0;
if ($_POST['pagehand_change'] == 'ON') $_POST['pagehand_change']=1; else $_POST['pagehand_change']=0;
if ($_POST['zip_change'] == 'ON') $_POST['zip_change']=1; else $_POST['zip_change']=0;
if ($_POST['jad_change'] == 'ON') $_POST['jad_change']=1; else $_POST['jad_change']=0;
if ($_POST['zakaz'] == 'ON') $_POST['zakaz']=1; else $_POST['zakaz']=0;
if ($_POST['buy_change'] == 'ON') $_POST['buy_change']=1; else $_POST['buy_change']=0;
if ($_POST['cut_change'] == 'ON') $_POST['cut_change']=1; else $_POST['cut_change']=0;
foreach($_POST as $key=>$value)
{
if($key=='password' or $key=='delete_dir' or $key=='delete_file') die($setup['hackmess'] . '</body></html>');
$query = mysql_query("UPDATE `setting` SET `value` = '".intval($value)."' WHERE `name` = '$key';");
}
echo 'Список модулей изменен';
}
break;

########################################БЕЗОПАСНОСТЬ################################################
case 'sec':
if(!$_POST)
{
echo '<div class="gt">Безопасность:</div>
<form action="apanel.php?action=sec" method="post">
<div class="cont">
Пароль(если не хотим менять оставляем пустым): <br>
<input class="enter" name="password" type="password" value=""></div><div class="cont">
Число неверных попыток ввода пароля до блокировки: <br>
<input class="enter" name="countban" type="text" value="'.$setup['countban'].'"></div><div class="cont">
Время блокировки(сек.): <br>
<input class="enter" name="timeban" type="text" value="'.$setup['timeban'].'"><br>
<input name="autologin" type="checkbox" value="ON" '.check($setup['autologin']).'>Автологин<br>
<input name="delete_file" type="checkbox" value="ON" '.check($setup['delete_file']).'>Функция удаления файлов<br>
<input name="delete_dir" type="checkbox" value="ON" '.check($setup['delete_dir']).'>Функция удаления каталогов
</div><div class="cont">
Введите текущий пароль для потверждения:<br>
<input class="enter" name="pwd" type="password" value=""><br>
<input class="buttom" type="submit" value="Сохранить">
</form>
</div>';
}
else
{
if ($_POST['autologin'] == 'ON') $_POST['autologin']=1; else $_POST['autologin']=0;
if ($_POST['delete_dir'] == 'ON') $_POST['delete_dir']=1; else $_POST['delete_dir']=0;
if ($_POST['delete_file'] == 'ON') $_POST['delete_file']=1; else $_POST['delete_file']=0;
if (md5(clean($_POST['pwd'])) != $setup['password'] or empty($_POST['pwd'])) die($setup['hackmess']);
is_num($_POST['countban'],'countban');
is_num($_POST['timeban'],'timeban');
foreach($_POST as $key=>$value)
{
if($value=='' and $key!='password' and $key!='autologin' and $key!='delete_dir' and $key!='delete_file') die('Не заполнено одно из полей.');
}
if(!empty($_POST['password'])) $query = mysql_query("UPDATE `setting` SET `value` = '".md5(clean($_POST['password']))."' WHERE `name` = 'password';");
mysql_query("UPDATE `setting` SET `value` = '".clean($_POST['countban'])."' WHERE `name` = 'countban';");
mysql_query("UPDATE `setting` SET `value` = '".clean($_POST['timeban'])."' WHERE `name` = 'timeban';");
mysql_query("UPDATE `setting` SET `value` = '".$_POST['autologin']."' WHERE `name` = 'autologin';");
mysql_query("UPDATE `setting` SET `value` = '".$_POST['delete_file']."' WHERE `name` = 'delete_file';");
mysql_query("UPDATE `setting` SET `value` = '".$_POST['delete_dir']."' WHERE `name` = 'delete_dir';");
echo 'Настройки изменены.';
}
break;

########################################НАСТРОЙКИ СКРИПТА################################################
case 'setting':
if(!$_POST)
{
echo '<div class="gt">Настройки загруз-центра:</div>
<form action="apanel.php?action=setting" method="post">
<div class="cont">
Папка с файлами:<br>
<input class="enter" name="path" type="text" value="'.$setup['path'].'"></div><div class="cont">
Папка с описаниями:<br>
<input class="enter" name="opath" type="text" value="'.$setup['opath'].'"></div><div class="cont">
Папка со скринами:<br>
<input class="enter" name="spath" type="text" value="'.$setup['spath'].'"></div><div class="cont">

Папка c JAVA книгами:<br>
<input class="enter" name="jpath" type="text" value="'.$setup['jpath'].'"></div><div class="cont">

Папка c ZIP книгами:<br>
<input class="enter" name="zpath" type="text" value="'.$setup['zpath'].'"></div><div class="cont">

Папка co скриншотами тем:<br>
<input class="enter" name="tpath" type="text" value="'.$setup['tpath'].'"></div><div class="cont">

Папка co скриншотами видео:<br>
<input class="enter" name="vpath" type="text" value="'.$setup['vpath'].'"></div><div class="cont">

Папка для нарезок:<br>
<input class="enter" name="mp3path" type="text" value="'.$setup['mp3path'].'"></div><div class="cont">
Лимит нарезок (Мб):<br>
<input class="enter" name="limit" type="text" value="'.$setup['limit'].'"></div><div class="cont">
Лимит комментариев к одному файлу:<br>
<input class="enter" name="klimit" type="text" value="'.$setup['klimit'].'"></div><div class="cont">
Файлов на страницу по умолчанию:<br>
<select class="enter" size="1" name="onpage">
<option '.sel(10,$setup['onpage']).'>10</option>
<option '.sel(15,$setup['onpage']).'>15</option>
<option '.sel(20,$setup['onpage']).'>20</option>
<option '.sel(25,$setup['onpage']).'>25</option>
<option '.sel(30,$setup['onpage']).'>30</option>
</select></div><div class="cont">
Предосмотр по умолчанию:<br>
<select class="enter" size="1" name="prew">
<option value="1" '.sel(1,$setup['prew']).'>Включено</option>
<option value="0" '.sel(0,$setup['prew']).'>Выключено</option>
</select></div><div class="cont">
Размер превьюшек(ширина*высота,знак "*" обязателен!):<br>
<input class="enter" name="prev_size" type="text" value="'.$setup['prev_size'].'"></div><div class="cont">


Маркер картинок:<br>
<select class="enter" size="1" name="marker">
<option value="0" '.sel(0,$setup['marker']).'>Выключено</option>
<option value="1" '.sel(1,$setup['marker']).'>Включено</option>
</select></div><div class="cont">

Текст маркера:<br>
<input class="enter" name="text_marker" type="text" value="'.$setup['text_marker'].'"></div><div class="cont">

Показ расширения:<br>
<select class="enter" size="1" name="ext">
<option value="1" '.sel(1,$setup['ext']).'>Включено</option>
<option value="0" '.sel(0,$setup['ext']).'>Выключено</option>
</select></div><div class="cont">
Время новых файлов (дней,0 - выключено): <br>
<input class="enter" name="day_new" type="text" value="'.$setup['day_new'].'"></div><div class="cont">
Время онлайна(сек.):<br>
<input class="enter" name="online_time" type="text" value="'.$setup['online_time'].'"></div><div class="cont">
Число страниц после которого появляется возможность ручного ввода страниц: <br>
<input class="enter" name="pagehand" type="text" value="'.$setup['pagehand'].'"></div><div class="cont">
Число ТОП файлов:<br>
<input class="enter" name="top_num" type="text" value="'.$setup['top_num'].'"></div><div class="cont">
Сообщение для особо одаренных:<br>
<input class="enter" name="hackmess" type="text" value="'.$setup['hackmess'].'"></div><div class="cont">
Сортировка по умолчанию:<br>
<select class="enter" size="1" name="sort">
<option value="name" '.sel('name',$setup['sort']).'>Имя</option>
<option value="size" '.sel('size',$setup['sort']).'>Размер</option>
<option value="data" '.sel('data',$setup['sort']).'>Дата</option>
<option value="load" '.sel('load',$setup['sort']).'>Популярность</option>
<option value="eval" '.sel('eval',$setup['sort']).'>Рейтинг</option>
</select></div><div class="cont">
Email:<br>
<input class="enter" name="zakaz_email" type="text" value="'.$setup['zakaz_email'].'">
</div><div class="cont">
Заголовок: <br>
<input class="enter" name="zag" type="text" value="'.$setup['zag'].'">
</div><div class="cont">
Главная сайта:<br>
<input class="enter" name="site_url" type="text" value="'.$setup['site_url'].'"><br><br>
<input class="buttom" type="submit" value="Сохранить">
</div></form>
</form>';
}
else
{
if($_POST['password'] OR $_POST['delete_dir'] OR $_POST['delete_file']){
die($setup['hackmess'].'</body></html>');
}
foreach($_POST as $key=>$value){
if(!isset($value) or $value=='') die('Не заполнено одно из полей.');
mysql_query("DELETE FROM `setting` WHERE `name`='".$key."'");
mysql_query("INSERT INTO `setting`(`name`,`value`) VALUES( '".$key."', '".clean($value)."');");
//print mysql_error();
}
echo 'Настройки сохранены';
}
break;
}

######################################НОСОК##################################################
if($_GET['action']){
echo '<div class="cont"><a href="apanel.php">Админка</a></div>';
}


include 'moduls/foot.php';
?>