Файл: down/apanel.php
Строк: 887
<?php
list($msec,$sec)=explode(chr(32),microtime());
$HeadTime=$sec+$msec;
require'../shaxty.php'; // waphp.ru - закрытый клуб вап мастеров!
require_once'fun.php';
$align='left';
$title='Архив файлов!';
$head='Архив файлов! Тут найдется все )';
include_once (H.'shaxty/head.php');
check_login();
levels($set['zc_levadm']);
###################ГЛАВНОЕ МЕНЮ####################
switch($_GET['action']){
default:
echo '<div class="c4">Админка</div>
<div class="c2">Файлы</div><div class="a">
<a href="apanel_index.php">Файловый менеджер</a><br/>
<a href="apanel.php?action=upload">Upload файлов</a><br/>
<a href="apanel.php?action=import">Импорт файлов</a><br/>
<a href="apanel.php?action=import2">Импорт/Граб</a><br/>
<a href="rename.php">Массовая переименовка файлов</a><br/>';
if($level==9){echo '</div><div class="c2">БД MySQL</div><div class="a">
<a href="apanel_scan.php">Полное обновление БД</a><br/>
<a href="apanel_scan2.php">Полуавтоматическое обновление БД</a><br/>
<a href="apanel.php?action=rot">Очистка БД от мусора</a><br/>
<a href="apanel.php?action=checkkomm">Очистка комментариев</a><br/>
<a href="apanel.php?action=optm">Оптимизация БД</a><br/>
<a href="apanel.php?action=check">Очистка БД</a><br/>';
echo '</div><div class="c2">Настройки</div><div class="a">
<a href="apanel.php?action=sett">Настройки</a><br/>
<a href="apanel.php?action=close_razdel">Закрыть раздел</a><br/>
<a href="apanel.php?action=id3">MP3 теги</a><br/>
<a href="apanel.php?action=mark">Маркер картинок</a><br/><br>';
}
break;
#########################################ИМПОРТ2222222####################################################################
case 'import2':
levels(9);
set_time_limit(99999);
if($_POST['url'])
{
$b = file('browser.dat');
$s = count($b)-1;
$ot = trim($_POST['ot']);
$do = trim($_POST['do']);
$topath = trim($_POST['topath']);
$url = trim($_POST['url']);
$referer = trim($_POST['referer']);
$dir=''.$_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF']).'/'.$topath;
if(strlen($ot)>1 && $ot[0]=='0'){
$null = substr_count($ot,'0');
for($i=0; $i<$null; ++$i){
$temp.= '0';
}
}
$ref = $get =array();
for($i=$ot; $i<=$do; ++$i)
{
if($temp!==false){
$num = $i/10;
if($num==1 || $num==10 || $num==100 || $num==1000 || $num==10000 || $num==100000 || $num==1000000){
$temp = substr($temp,0,-1);
}
}
if($temp!==false && $i!=$ot){
$get[].= str_replace('$',$temp.$i,$url);
$ref[].= str_replace('$',$temp.$i,$referer);
}
else{
$get[].= str_replace('$',$i,$url);
$ref[].= str_replace('$',$i,$referer);
}
}
mkdir($dir,0777);
chmod($dir,0777);
for($i=0; $i<=count($get); $i++)
{
ini_set('user_agent',trim($b[rand(0,$s)])."rnReferer: $ref[$i]rnAccept: */*rnAccept-Charset: utf-8rnAccept-language: ru-RU");
if(copy($get[$i],$dir.basename($get[$i]))){++$g;}
}
chmod($dir,0755);
print 'Скопировано '.$g.' Файла(ов)';
}
else
{
$dirs = mysql_query("SELECT `path` FROM `files` WHERE `size` = '0';");
print '<form action="'.$_SERVER['PHP_SELF'].'?action=import2" method="post">
<div>
Сохранить в:<br>
<select class="buttom" size="1" width="70" name="topath"><option value="'.set('path').'/">./</option>';
while($item = mysql_fetch_array($dirs))
{
$name = str_replace(set('path').'/','',$item['path']);
$path = explode('/',$name);
$option = '';
unset($path[count($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>
URL<br/>
<input type="text" name="url" value="http://"/><br/>
Referer<br/>
<input type="text" name="referer" value="http://"/><br/>
Начать с<br/>
<input type="text" name="ot" value="1"/><br/>
Закончить<br/>
<input type="text" name="do" value="100"/><br/>
<input type="submit" value="Панеслась"/>
</div>
</form>FAQ(ЧаВО)<br/>----------<br/>
Например, пишем:<br/>
Куда Копировать - dir/<br/>
URL - http://somebody.com/$.gif<br/>
Referer - http://somebody.com/$.gif<br/>
Начать с - 001 (не начинайте со всех нулей)<br/>
Закончить - 100<br/>----------';
}
if(!empty($faq)) echo "Куда Копировать - папка на вашем хосте, куда будут скопированы файлы, имя<br/>относительно данного скрипта, если такой папки нет, она будет создана<br/>
URL - адрес ресурса откуда будем качать контент, символ $ будет заменятся на <br/>ЦИФРУ/БУКВУ<br/>
Referer - реферер, символ $ будет заменятся на ЦИФРУ/БУКВУ<br/>
В параметрах 'Начать с' и 'Закончить' вписываем ЦИФРУ/БУКВУ от которой будет начат <br/>отсчет и которой закончен соответственно<br/>
<br/>
<br/>
В таком случае с somebody.com будут скопированы в папку dir вашего хоста файлы <br/>http://somebody.com/001.gif, http://somebody.com/002.gif ... <br/>http://somebody.com/100.gif<br/>
<br/>
Взяв за пример скрипт Гемороя.оф сайт wapinet.ru<br/>";
break;
#####################################МАРКИРОВКА
case 'mark':
levels(9);
if(!$_POST){
print '<div class="mainzag">Маркер картинок<br>На картинки будет нанесена указанная надпись, удалить ее будет невозможно<br></div>
<div class="row">
<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_array($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],100))
$i++;
}
$pic = null;
}
print 'Всего картинок: '.$all.', промаркерованы: '.$i;
}
break;
// редактор MP3 тегов
case 'id3':
levels(9);
include 'moduls/id.php';
$id3 = &new MP3_Id();
$genres = $id3->genres();
if(!$_POST){
if($id){
$tmp = mysql_fetch_array(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);
print '<div class="mainzag">Редактор MP3 тегов<br></div>
<div class="row">
<form action="apanel.php?action=id3&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);
print '<option value="'.$var.'">'.$var.'</option>';
}
print '</select><br>
Комментарии<br>
<textarea name="comment" rows="2" cols="32">'.$comment.'</textarea><br>
<input class="buttom" type="submit" value="Задать">
</form>
</div>';
}
else{
print '<div class="mainzag">Модуль задаст всем MP3 файлам указанные теги. Если поле пустое, то тег изменяться не будет<br></div>
<div class="row">
<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);
print '<option value="'.$var.'">'.$var.'</option>';
}
print '</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_array(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();
print 'Теги изменены';
}
else{
$arr = array();
$q = mysql_query('SELECT TRIM(`path`) FROM `files`');
while($f = mysql_fetch_array($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 = count($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="mainzag">Быстрое описание '.$file['name'].':</div>
<div class="row">
<form action="apanel.php?action=fast&id='.$id.'" method="post" name="REPLIER">
<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) $write_bd = mysql_query("UPDATE `files` SET about='".bb_code(check($_POST['text']))."' WHERE `id` = ".$id);
$write_bd = mysql_query("UPDATE `files` SET fastabout='".bb_code(check($_POST['text']))."' WHERE `id` = ".$id);
echo 'Быстрое описание '.$res.'<br><a href="apanel_view.php?id='.$id.'">К описанию</a>';
}
break;
######################################ЛОГ######################################################
case 'pos':
$file_info = mysql_fetch_array(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="mainzag">Приоритет каталога '.$file_info['name'].' изменен!</div>';
}
else{
echo '<div class="minizag">Ошибка при изменении приоритета</div>';
}
break;
######################################ЛОГ######################################################
case 'rot':
levels(9);
$delfiles = 0;
$reses = mysql_query('SELECT `id`,`path` FROM `files`;');
while($array = mysql_fetch_array($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="mainzag">База данных успешно обновлена!</div><div class="row">Удалено неверных записей: '.$delfiles.'</div>';
break;
######################################ЛОГ######################################################
case 'editabout':
$file_info = mysql_fetch_array(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('Ошибка');
if(!$_POST){
echo '<div class="mainzag">Описание файла '.$file_info['name'].':</div>
<div class="row">
<form action="apanel.php?action=editabout&id='.$id.'" method="post" name="REPLIER">
<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{
$write_bd = mysql_query("UPDATE `files` SET fastabout='".bb_code(check($_POST['text']))."' WHERE `id` = ".$id);
echo 'Быстрое описание изменено!';
}
break;
######################################ЛОГ######################################################
case 'flash':
levels(9);
$file_info = mysql_fetch_array(mysql_query('SELECT `path` FROM `files` WHERE `id` = '.$id.' AND `size` = 0;'));
if(!is_dir($file_info['path'])) die('Такой категории не существует.');
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(substr($file_info['path'],0,strlen($file_info['path'])-1));
$addfolder = $addfiles = 0;
$reses = mysql_query('SELECT `id`,`path` FROM `files`;');
while($array = mysql_fetch_array($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="mainzag">База данных успешно обновлена!</div><div class="row">Добавлено папок: '.$addfolder.' <br>Добавлено файлов: '.$addfiles.'</div>';
break;
######################################ЛОГ######################################################
case 'flash1':
levels(9);
$file_info = mysql_fetch_array(mysql_query('SELECT `path` FROM `files` WHERE `id` = '.$id.' AND `size` = 0;'));
if(!is_dir($file_info['path'])) die('Такой категории не существует.');
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(substr($file_info['path'],0,strlen($file_info['path'])-1));
$addfolder = $addfiles = 0;
$reses = mysql_query('SELECT `id`,`path` FROM `files`;');
while($array = mysql_fetch_array($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)){
}
else{
$query = mysql_query("INSERT INTO `files` (`path`, `name`, `infolder`, `size` , `timeupload`) VALUES ('$value', '$name', '$infolder' , '$size' , '$upltime');");
$addfiles++;
}
}
}
echo '<div class="mainzag">База данных успешно обновлена!</div><div class="row">Добавлено файлов: '.$addfiles.'</div>';
break;
######################################ЛОГ######################################################
case 'log':
levels(9);
$query = mysql_query('SELECT * FROM `loginlog` WHERE `id` > 1 ORDER BY `time` DESC;');
echo '<div class="mainzag">Лог последних 20 посещений админки([UserAgent][IP][Time]):</div><div class="row">';
while($log = mysql_fetch_array($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_array(mysql_query('SELECT * FROM `files` WHERE `id` = '.$id));
if(!$_FILES)
{
echo '<div class="mainzag">Загрузка иконки к папке</div>
<div class="row">
<form action="apanel.php?action=addico&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 (set('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_array(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':
levels(9);
$file = mysql_fetch_array(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':
levels(9);
if(set('delete_dir')==0) die($hackmess);
if(!$_GET['level']){
echo 'Будут удалены все файлы в каталоге,а также сам каталог. Продолжить?<br><a href="apanel.php?action=redir&level=1&id='.$id.'">Да, продолжить</a>';
}
else{
$file = mysql_fetch_array(mysql_query('SELECT * FROM `files` WHERE `id` = '.$id.' ORDER BY `name`;'));
if(!is_dir ($file['path'])) die('Такой категории не существует!');
$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 уровнем вложенности!');
else{
if(!unlink($vv)) die('Ошибка при удалении файла '.$vv);
}
}
$query = mysql_query("DELETE FROM `files` WHERE `infolder` = '".$file['path']."'") or die('Ошибка при удалении файлов из базы');
if(!rmdir($file['path'])) die('Ошибка при удалении каталога');
$query = mysql_query('DELETE FROM `files` WHERE `id` = '.$id) or die('Ошибка при удалении каталога из базы');
$f_chmod = null;
foreach($ex as $chmod){
$f_chmod.=$chmod.'/';
if($f_chmod!=set('path').'/'){
chmod($f_chmod.'/',0777);
}
}
echo 'Каталог успешно удален!';
}
break;
######################################УДАЛЕНИЕ ФАЙЛА###############################################
case 'refile':
if(set('delete_dir')==0) die($hackmess);
$file = mysql_fetch_array(mysql_query('SELECT * FROM `files` WHERE `id` = '.$id.' ORDER BY `name`;'));
if(!is_file ($file['path'])) die('Такого файла не существует!');
$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']);
$query = mysql_query('DELETE FROM `files` WHERE `id` = '.$id) or die('Ошибка при удалении файла из базы');
$f_chmod = null;
foreach($ex as $chmod){
$f_chmod.=$chmod;
if(is_dir($f_chmod)){
$f_chmod = $f_chmod.'/';
}
if($f_chmod!=set('path').'/'){
chmod($f_chmod,0777);
}
}
echo 'Файл <strong>'.$file['name'].'</strong> удален!';
break;
######################################ПЕРЕИМЕНОВАНИЕ##################################################
case 'rename':
$file = mysql_fetch_array(mysql_query('SELECT * FROM `files` WHERE `id` = '.$id));
if(!$_POST)
{
if(is_dir($file['path'])) $file['name'] = str_replace('*','',$file['name']);
echo '<div class="mainzag">Введите новое имя:</div>
<div class="row">
<form method="post" action="apanel.php?action=rename&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 = check(del($_POST['newname']));
if(is_dir($file['path'])) $newname = '*'.$newname;
$query = mysql_query("UPDATE `files` SET name='".$newname."' WHERE `id` = ".$id);
$error = mysql_error();
if($error) die('Ошибка при переименовании.<br>'.$error);
echo 'Файл переименован.';
}
break;
#########################################ОЧИСТКА КОММЕНТОВ К ФАЙЛУ#########################################
case 'clearkomm':
levels(9);
$query = mysql_query('DELETE FROM `komments` WHERE `file_id` = '.$id);
$error = mysql_error();
if($error) die('Ошибка при сбросе.<br>'.$error);
echo 'Комментарии удалены.';
break;
##############################################ОЧИСТКА РЕЙТИНГА К ФАЙЛУ#######################################
case 'cleareval':
levels(9);
$query = mysql_query('UPDATE `files` SET `ips`="",`yes`=0,`no`=0 WHERE `id` = '.$id);
$error = mysql_error();
if($error) die('Ошибка при сбросе.<br>'.$error);
echo 'Рейтинг удален.';
break;
#############################################ОПТИМИЗАЦИЯ БД###########################################
case 'optm':
levels(9);
mysql_query('OPTIMIZE TABLE `files`;');
mysql_query('OPTIMIZE TABLE `komments`;');
mysql_query('OPTIMIZE TABLE `sett`;');
echo 'Базы данных оптимизированы.';
break;
################################################ОЧИСТКА БД########################################
case 'check':
levels(9);
if(!$_GET['level'])
{
echo 'Будут удалены все данные БД, включая описания,счетчики закачек,рейтинги и комментарии.Продолжить?<br><a href="apanel.php?action=check&level=1">Да, продолжить</a>';
}
else
{
mysql_query('TRUNCATE TABLE `files`;');
mysql_query('TRUNCATE TABLE `komments`;');
echo 'Базы данных очищены.<br>';
}
break;
##########################################ОЧИСТКА ВСЕХ КОММЕНТОВ##############################################
/*case 'checkkomm':
levels(9);
if(!$_GET['level'])
{
echo 'Будут удалены все комментарии к файлам! Продолжить?<br><a href="apanel.php?action=checkkomm&level=1">Да, продолжить</a>';
}
else
{
$result = mysql_query('TRUNCATE TABLE `komments`;');
echo 'База данных комментариев очищена.<br>';
}
break;*/
#########################################ДОБАВЛЕНИЕ И ИЗМЕНЕНИЕ ОПИСАНИЯ#########################################
case 'about':
$file = mysql_fetch_array(mysql_query('SELECT * FROM `files` WHERE `id` = '.$id));
if(!$_POST)
{
echo '<div class="mainzag">Описание файла '.$file['name'].':</div>
<div class="row">
<form action="apanel.php?action=about&id='.$id.'" method="post" name="REPLIER">
<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_array(mysql_query("SELECT `id` FROM `files` WHERE `path` = '".bb_code(check($dir))."';"));
$write_bd = mysql_query("UPDATE `files` SET about='".bb_code(check($_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':
levels(9);
if(!$_POST)
{
$dirs = mysql_query('SELECT `path` FROM `files` WHERE `size` = 0');
echo '<div class="mainzag">Импорт файлов</div>
<div class="row">
Сохранить в:<br>
<form action="apanel.php?action=import" method="post" name="REPLIER">
<select class="buttom" size="1" width="70" name="topath"><option value="'.set('path').'/">./</option>';
while($item = mysql_fetch_array($dirs)){
$name = str_replace(set('path').'/','',$item['path']);
$path = explode('/',$name);
$option = '';
unset($path[count($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 ('Нет конечного пути!');
$text=explode("",$_POST['files']);
for($i=0; $i<count($text); $i++)
{
$parametr = explode('#',trim($text[$i]));
if(!isset($parametr[1])) $parametr[1] = basename(trim($parametr[0]));
$to = $newpath.trim($parametr[1]);
if(file_exists($to)) die('Файл '.$to.' уже существует<br>');
$ex = pathinfo(trim($parametr[0]));
$ext = strtolower($ex['extension']);
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 (set('hackmess'));
chmod($newpath, 0777);
@ini_set('user_agent',$_SERVER['HTTP_USER_AGENT']);
if(copy(trim($parametr[0]),$to))
{
echo 'Импорт файла '.$parametr[1].' удался<br>';
$upltime = filectime($to);
$ex = pathinfo($to);
$ex = $ex['extension'];
$name = str_replace('.'.$ex,'',basename($to));
if(strpos($name , '!') !== false){
$name = trans($name);
}
else{
$name = trans2($name);
}
$size = filesize($to);
$infolder = dirname($to).'/';
$query = mysql_query("INSERT INTO `files` (`path`, `name`, `infolder`, `size` , `timeupload`) VALUES ('$to', '$name', '$infolder' , '$size' , '$upltime');");
}
else echo 'Импорт файла '.$parametr[1].' не удался<br>';
}
chmod($newpath, 0777);
}
break;
#####################################АПЛОАД скрина###################################################
case 'screen':
$info = mysql_fetch_array(mysql_query('SELECT * FROM `files` WHERE `id` = '.$id));
$nf = pathinfo($info['path']);
$filename = $nf['basename'];
if(!is_file(set('spath').'/'.$filename.'.gif')){
if(!$_FILES)
{
echo '<div class="mainzag">Загрузка скрина</div>
<div class="row">
<form action="apanel.php?action=screen&id='.$id.'" method="post" enctype="multipart/form-data">
Файл будет скопирован в папку со скриншотами:<br>
<input name="scr" type="file"><br>
<input class="buttom" type="submit" value="Добавить">
</form>';
}
else
{
$name = $_FILES['scr']['name'];
$ex = pathinfo($name);
$ext = strtolower($ex['extension']);
$filenm = pathinfo($info['path']);
$to = set('spath').'/'.$filenm['basename'].'.gif';
if($ext!='gif' && $ext!='jpg' && $ext!='jpe' && $ext!='jpeg' && $ext!='png') die('Поддерживаются скриншоты только gif, jpeg, png форматов');
if(file_exists($to)) die('Файл уже существует');
chmod(set('spath'), 0777);
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>';
}
}
}
else {
chmod(set('spath'), 0777);
unlink (set('spath').'/'.$filename.'.gif');
}
break;
#####################################АПЛОАД###################################################
case 'upload':
if(!$_POST)
{
$dirs = mysql_query('SELECT `path` FROM `files` WHERE `size` = 0');
echo '<div class="mainzag">Upload файлов (max '.ini_get('upload_max_filesize').')</div>
<div class="row">
Сохранить в:<br>
<form action="apanel.php?action=upload" method="post" enctype="multipart/form-data">
<select class="buttom" size="1" width="70" name="topath"><option value="'.set('path').'/">./</option>';
while($item = mysql_fetch_array($dirs))
{
$name = str_replace(set('path').'/','',$item['path']);
$path = explode('/',$name);
$option = '';
unset($path[count($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<count($_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 (set('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);
}
$query = 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="mainzag">Создание новой категории:</div>
<div class="row">
<form action="apanel.php?action=newdir&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('Не заполнено поле!');
}
$dirnew = check(del($_POST['dirnew']));
$name = '*'.$dirnew;
if($_POST['tr'] == 1){
$dirnew = '!'.retrans($dirnew);
}
if(!$id){
$d['path'] = set('path').'/';
}
else{
$d = mysql_fetch_array(mysql_query('SELECT * FROM `files` WHERE `id` = '.$id));
}
chmod($d['path'],0777);
$dirnew = trim($d['path']).trim($dirnew).'/';
if(mkdir($dirnew, 0777) AND $query = mysql_query("INSERT INTO `files` (`path`, `name`, `infolder`, `timeupload`, `loads`, `yes` ) VALUES ('".$dirnew."', '$name', '".$d['path']."', '9999999999', '9999999999', '9999');")){
chmod($dirnew, 0777);
echo 'Новый каталог создан.';
}
else{
echo 'Ошибка при создании нового каталога.';
//chmod($d['path'],0777);
}
}
break;
########################################НАСТРОЙКИ СКРИПТА################################################
case 'sett':
levels(9);
if(!$_POST)
{
echo '<div class="mainzag">Настройки загруз-центра:</div>
<form action="apanel.php?action=sett" method="post">
<div class="row">
Папка с файлами:<br>
<input class="enter" name="path" type="text" value="'.set('path').'"></div><div class="row">
Папка с описаниями:<br>
<input class="enter" name="opath" type="text" value="'.set('opath').'"></div><div class="row">
Папка со скринами:<br>
<input class="enter" name="spath" type="text" value="'.set('spath').'"></div><div class="row">
Папка c JAVA книгами:<br>
<input class="enter" name="jpath" type="text" value="'.set('jpath').'"></div><div class="row">
Папка c ZIP книгами:<br>
<input class="enter" name="zpath" type="text" value="'.set('zpath').'"></div><div class="row">
Папка для нарезок:<br>
<input class="enter" name="mp3path" type="text" value="'.set('mp3path').'"></div><div class="row">
Лимит нарезок (Мб):<br>
<input class="enter" name="limit" type="text" value="'.set('limit').'"></div><div class="row">
Лимит комментариев к одному файлу:<br>
<input class="enter" name="klimit" type="text" value="'.set('klimit').'"></div><div class="row">
Файлов на страницу по умолчанию:<br>
<select class="enter" size="1" name="onpage">
<option '.sel(10,set('onpage')).'>10</option>
<option '.sel(15,set('onpage')).'>15</option>
<option '.sel(20,set('onpage')).'>20</option>
<option '.sel(25,set('onpage')).'>25</option>
<option '.sel(30,set('onpage')).'>30</option>
</select></div><div class="row">
Предосмотр по умолчанию:<br>
<select class="enter" size="1" name="prew">
<option value="1" '.sel(1,set('prew')).'>Включено</option>
<option value="0" '.sel(0,set('prew')).'>Выключено</option>
</select></div><div class="row">
Размер превьюшек(ширина*высота,знак "*" обязателен!):<br>
<input class="enter" name="prev_size" type="text" value="'.$setup['prev_size'].'"></div><div class="row">
Маркер картинок:<br>
<select class="enter" size="1" name="marker">
<option value="0" '.sel(0,set('marker')).'>Выключено</option>
<option value="1" '.sel(1,set('marker')).'>Включено</option>
</select></div><div class="row">
Текст маркера:<br>
<input class="enter" name="text_marker" type="text" value="'.set('text_marker').'"></div><div class="row">
Показ расширения:<br>
<select class="enter" size="1" name="ext">
<option value="1" '.sel(1,set('ext')).'>Включено</option>
<option value="0" '.sel(0,set('ext')).'>Выключено</option>
</select></div><div class="row">
Время новых файлов (дней,0 - выключено): <br>
<input class="enter" name="day_new" type="text" value="'.set('day_new').'"></div><div class="row">
Время онлайна(сек.):<br>
<input class="enter" name="online_time" type="text" value="'.set('online_time').'"></div><div class="row">
Число страниц после которого появляется возможность ручного ввода страниц: <br>
<input class="enter" name="pagehand" type="text" value="'.set('pagehand').'"></div><div class="row">
Число ТОП файлов:<br>
<input class="enter" name="top_num" type="text" value="'.set('top_num').'"></div><div class="row">
Сообщение для особо одаренных:<br>
<input class="enter" name="hackmess" type="text" value="'.set('hackmess').'"></div><div class="row">
Сортировка по умолчанию:<br>
<select class="enter" size="1" name="sort">
<option value="name" '.sel('name',set('sort')).'>Имя</option>
<option value="size" '.sel('size',set('sort')).'>Размер</option>
<option value="data" '.sel('data',set('sort')).'>Дата</option>
<option value="load" '.sel('load',set('sort')).'>Популярность</option>
<option value="eval" '.sel('eval',set('sort')).'>Рейтинг</option>
</select></div><div class="row">
Email:<br>
<input class="enter" name="zakaz_email" type="text" value="'.set('zakaz_email').'">
</div><div class="row">
Заголовок: <br>
<input class="enter" name="zag" type="text" value="'.set('zag').'">
</div><div class="row">
Главная сайта:<br>
<input class="enter" name="site_url" type="text" value="'.set('site_url').'"><br><br>
<input class="buttom" type="submit" value="Сохранить">
</div></form>
</form>';
}
else
{
foreach($_POST as $key=>$value){
if(!isset($value) or $value=='') die('Не заполнено одно из полей.');
mysql_query("DELETE FROM `sett` WHERE `name`='".$key."'");
mysql_query("INSERT INTO `sett`(`name`,`value`) VALUES( '".$key."', '".check($value)."');");
print mysql_error();
}
echo 'Настройки сохранены';
}
break;
case close_razdel:
levels(9);
if (isset($_POST['ok']))
{
if (!isset($_POST['block']))
{
header('Location: ?action=close_razdel');
die();
}
$lv = (int)$_POST['liven'];
foreach($_POST['block'] as $val)
{
mysql_query("UPDATE files SET `close` = '$lv' WHERE id = '$val'");
}
header('Location: ?action=close_razdel');
}
if (isset($_GET['x']))
{
$x = (int)$_GET['x'];
mysql_query("UPDATE files SET `close` = '0' WHERE id = '$x'");
header('Location: ?action=close_razdel');
}
$sqlR = mysql_query("SELECT * FROM files WHERE infolder = 'files/!Skripty/' AND size = '0'");
echo '<form method="post" action="?action=close_razdel">
Чтобы выбрать закрытые разделы, отметьте их галочкой и укажите уровень доступа.<br/>
Чтобы убрать галочку, нажмите на <i>x</i> рядом с ней.
<hr/>';
$i = 0;
while($inSql = mysql_fetch_assoc($sqlR))
{
echo '<input type="checkbox" name="block[]" '.($inSql['close'] != 0 ? 'checked="checked"' : '').' value="'.$inSql['id'].'"/> ' . $inSql['name'] . '
<a href="?action=close_razdel&x='.$inSql['id'].'">x</a><br/>';
}
$sqlR_2 = mysql_fetch_array(mysql_query("SELECT close FROM files WHERE close != '0' LIMIT 1"));
echo 'Доступны для какого уровня?
<br/>
<select name="liven">
<option value="0">Бродяга</option>
<option value="1">Новичек</option>
<option value="2">Наш чел</option>
<option value="3">Мастер</option>
<option value="4">V.I.P</option>
<option value="5">Модеротор</option>
<option value="6">Старший модер</option>
<option value="7">Админ</option>
<option value="8">Супер Админ</option>
<option value="9">Создатель сайта</option>
</select> ' . level($sqlR_2[0]) . '
<br/>
<input type="submit" class="ibutton" name="ok" value="Выбрать"/>
</form>';
break;
}
######################################НОСОК##################################################
if($_GET['action']){
echo $div1.'<a href="apanel.php">Админка</a>'.$div9;
}
echo $div1.'<a href="./">Загрузки</a>'.$div9;;
include_once (H.'shaxty/foot.php');
?>