<?php
//автор - figura
//сайт - http://f-pt.ru
include ('../../config.php');
include ('../../templates/run.php');
include ('../../templates/func.php');
$title_page = 'Explorer';
$m_polozhenie = 'В админ панели';
####################
include_once("../../lib/libzip.php");//Баблиотека для zip архивов
###
if(isset($_GET['act']))
{ $act = $_GET['act']; }
if(isset($_GET['i']))
{ $i = $_GET['i']; }
if(isset($_POST['act']))
{ $act = $_POST ['act']; }
$koren_dir=htmlspecialchars ($_SERVER['DOCUMENT_ROOT']);
function permissions($filez)
{
$filez = decoct(fileperms("$filez")) % 1000;
return $filez;
}
###
if(isset($_SESSION['sespass']) && isset($passw) && $_SESSION['sespass'] == $passw && ($status == "1") && ($login == $nickadmina))
{
include '../../themes/'.$themes.'.php';
echo'<p class="modul_name">Explorer</p>';
if(isset($_GET['dir'])){$dir = $_GET['dir'];}
if(isset($_GET['file'])){$file = $_GET['file'];}
if(isset($_POST['dir'])){$dir = $_POST['dir'];}
if(isset($_POST['param'])){$param = $_POST['param'];}
if(isset($_POST['txtsob'])){$txtsob = $_POST['txtsob'];}
////////////////////////////////////////////////////////
if(empty($act)){$act="index";}
if($act=="index")
{
if(empty($dir))
{
$dir= '../..';
}
if(file_exists($dir))//проверяем существование дериктории или файла
{
if(is_dir($dir))//если дериктория, то выводим её
{
$new_dir_url="..";
$new_dir_url_arr = explode("/", $dir);
$i = "0";
$var = count($new_dir_url_arr)-1;
while(++$i < $var)
{$new_dir_url = $new_dir_url."/".$new_dir_url_arr[$i];}
$basename=basename($dir);
echo'<p class="a">« <a href="explorer.php?act=index&dir='.$new_dir_url.'&'.session_name().'='.session_id().'">'.$dir.'</a></p>';
$dire = @opendir($dir);
while($file = readdir($dire))
{
if(($file != ".")&&($file != ".."))
{
$filez = $dir.'/'.$file;
$perm = permissions($filez);
if(is_dir($dir.'/'.$file))
{
$issr = '<img src="../../images/dir.gif" alt="" />';
$size_file = '';
$perm_size = "($perm)";
}
if(is_file($dir.'/'.$file))
{
$issr = '<img src="../../images/file.gif" alt="" />';
$sizef = stat(filter("$dir/$file"));
$kb = 1024;
$size_file = round($sizef[7] / $kb, 2);
$size_file = "$size_file kb";
$perm_size = "($perm; $size_file)";
}
echo'<p class="b">'.$issr.' <a href="explorer.php?act=index&dir='.$dir.'/'.$file.'&'.session_name().'='.session_id().'">'.$file.'</a> '.$perm_size.'<br /> [<a href="explorer.php?act=newnamedir&dir='.$dir.'/'.$file.'&'.session_name().'='.session_id().'">Переим</a>][<a href="explorer.php?act=dell&dir='.$dir.'/'.$file.'&'.session_name().'='.session_id().'">Удал</a>][<a href="explorer.php?act=newchmod&dir='.$dir.'/'.$file.'&'.session_name().'='.session_id().'">Chmod</a>]</p>';
}
}
closedir($dire);
echo'<p class="a">С текущей папкой</p>';
echo'<p class="b">» <a href="explorer.php?act=ziped&dir='.$dir.'&'.session_name().'='.session_id().'">Архивировать в ZIP</a><br /> » <a href="explorer.php?act=newnamedir&dir='.$dir.'&'.session_name().'='.session_id().'">Переименовать</a><br /> » <a href="explorer.php?act=dell&dir='.$dir.'&'.session_name().'='.session_id().'">Удалить</a><br /> » <a href="explorer.php?act=newchmod&dir='.$dir.'&'.session_name().'='.session_id().'">Chmod</a><br /></p>';
echo'<p class="a">Действия</p>';
echo'<p class="b"> » <a href="explorer.php?act=newfile&dir='.$dir.'&'.session_name().'='.session_id().'">Создать файл</a><br /> » <a href="explorer.php?act=newpapka&dir='.$dir.'&'.session_name().'='.session_id().'">Создать папку</a><br /> » <a href="explorer.php?act=newuploadfile&dir='.$dir.'&'.session_name().'='.session_id().'">Загрузить файл</a><br /> » <a href="explorer.php?act=newimportfile&dir='.$dir.'&'.session_name().'='.session_id().'">Импортировать файл</a><br /></p>';
}
///////////////////////////////////////////////////////////////////////////////////////////////////
if(is_file($dir))//если фаил, читаем его
{
$basename=basename($dir);
echo'<p class="a">Редактирование файла '.$basename.'<br />';
$sizef = stat(filter($dir));
$kb = 1024;
$size_file = round($sizef[7] / $kb, 2);
echo"Размер $size_file kb<br /></p>";
if (get_magic_quotes_gpc())
{
echo'<p class="err">Ошибка!!! Сейчас была проведена проверка настройки сервера, настройки не удовлетворительны, т.к. сервер запретил выключить "Магические кавычки". При включённой опции "магические кавычки", редактирование файлов невозможно, они будут испорчены.</p>';
echo'<p class="b">Проверьте наличие файла .htaccess , именно того, что выпускается вместе с движком. Если файл .htaccess на месте, то это значит, что хостинг не разрешает настройку сервера или просто запретил изменять параметры "magic_quotes". Вы можете обратится в поддержку хостинга, возможно они помогут вам с этой проблемой!<br>';
echo'<font color="#FF0000">Изменяя этот файл вы можете его испортить!!!</font></p>';
}
echo'<form name="forma" action="explorer.php?'.session_name().'='.session_id().'" method="post"><p class="b">';
echo'<INPUT TYPE="hidden" NAME="act" VALUE="save">';
echo'<INPUT TYPE="hidden" NAME="dir" VALUE="'.$dir.'">';
echo'<TEXTAREA NAME="txtsob" ROWS=10 COLS=40>';
$file_read = fopen($dir, 'r');
while($str = fgets($file_read))
{
$str = htmlspecialchars($str);
echo $str;
}
fclose($file_read);
echo'</TEXTAREA><br>';
echo'Внимание!!!<br /> Explorer сохранит файл "<b>'.$basename.'</b>" в кодировке <b>Utf-8</b><br>';
echo'<input type="submit" name="" value="Сохранить"><br /></p>';
echo'</form>';
echo'<p class="b">» <a href="explorer.php?act=newnamedir&dir='.$dir.'&'.session_name().'='.session_id().'">Переименовать</a><br /> » <a href="explorer.php?act=newchmod&dir='.$dir.'&'.session_name().'='.session_id().'">Chmod</a><br /> » <a href="explorer.php?act=dell&dir='.$dir.'&'.session_name().'='.session_id().'">Удалить</a><br /></p>';
$new_dir_url="..";
$new_dir_url_arr = explode("/", $dir);
$i = "0";
$var = count($new_dir_url_arr)-1;
while(++$i < $var)
{$new_dir_url = $new_dir_url."/".$new_dir_url_arr[$i];}
echo'<p><a href="explorer.php?act=index&dir='.$new_dir_url.'&'.session_name().'='.session_id().'">Назад к списку файлов</a><br /></p>';
}
echo'<p><a href="explorer.php?act=index&'.session_name().'='.session_id().'">В корневую папку</a><br /></p>';
}
else
{
echo'<p class="err">Файла или дериктории не существует.<br /></p>';
$referer = htmlspecialchars($_SERVER['HTTP_REFERER']);
echo'<p><a href="'.$referer.'">Назад</a><br />';
echo'<a href="explorer.php?act=index&'.session_name().'='.session_id().'">В корневую папку</a><br /></p>';
}
}
///////////////////////////////////////////////////////////удаление папки или файла/////////////////////////////////////////
if($act=="dell")
{
echo'<p class="a">Подтвердите удаление<br></p>';
echo'<p class="b"><a href="explorer.php?act=dell2&dir='.$dir.'&'.session_name().'='.session_id().'">Да</a><br />';
$referer = htmlspecialchars($_SERVER['HTTP_REFERER']);
echo'<a href="'.$referer.'">Назад</a><br /></p>';
echo'<p><a href="explorer.php?act=index&'.session_name().'='.session_id().'">В корневую папку</a><br /></p>';
}
if($act=="newfile")
{
//форма для создания нового файла
echo'<form name="forma" action="explorer.php?'.session_name().'='.session_id().'" method="post">';
echo'<p class="a">Создать файл</p>';
echo'<p class="b">';
echo'<INPUT TYPE="hidden" NAME="act" VALUE="save">';
echo'<INPUT TYPE="hidden" NAME="dir" VALUE="'.$dir.'">';
echo'<input type="text" name="param" value="" size="10" maxlength="40"><br />';
echo'<input type="submit" name="" value="Создать файл"><br>';
echo'</p></form>';
echo'<p><a href="explorer.php?act=index&dir='.$dir.'&'.session_name().'='.session_id().'">Назад к списку файлов</a><br />';
echo'<a href="explorer.php?act=index&'.session_name().'='.session_id().'">В корневую папку</a><br /></p>';
}
if($act=="newpapka")
{
//форма для создания новой папки
echo'<form name="forma" action="explorer.php?'.session_name().'='.session_id().'" method="post">';
echo'<p class="a">Новая папка</p>';
echo'<p class="b">';
echo'<INPUT TYPE="hidden" NAME="act" VALUE="mkdir">';
echo'<INPUT TYPE="hidden" NAME="dir" VALUE="'.$dir.'">';
echo'<input type="text" name="param" value="" size="10" maxlength="30"><br />';
echo'<input type="submit" name="" value="Создать папку"><br />';
echo'</p></form>';
echo'<p><a href="explorer.php?act=index&dir='.$dir.'&'.session_name().'='.session_id().'">Назад к списку файлов</a><br />';
echo'<a href="explorer.php?act=index&'.session_name().'='.session_id().'">В корневую папку</a><br /></p>';
}
if($act=="newuploadfile")
{
//Форма для загрузки файла
echo'<form enctype="multipart/form-data" action="explorer.php?'.session_name().'='.session_id().'" method="post">';
echo'<p class="a">Загрузить файл</p>';
echo'<p class="b">';
echo'<INPUT TYPE="hidden" NAME="act" VALUE="upload">';
echo'<INPUT TYPE="hidden" NAME="dir" VALUE="'.$dir.'">';
echo'<INPUT TYPE="file" NAME="userfile"><br />';
echo'<input type="submit" value="Загрузить файл"></p></form>';
echo'<p><a href="explorer.php?act=index&dir='.$dir.'&'.session_name().'='.session_id().'">Назад к списку файлов</a><br />';
echo'<a href="explorer.php?act=index&'.session_name().'='.session_id().'">В корневую папку</a><br /></p>';
}
if($act=="newimportfile")
{
//форма для импорта файла
echo'<form name="forma" action="explorer.php?'.session_name().'='.session_id().'" method="post">';
echo'<p class="a">Импортировать файл</p>';
echo'<p class="b">';
echo'<INPUT TYPE="hidden" NAME="act" VALUE="import">';
echo'<INPUT TYPE="hidden" NAME="dir" VALUE="'.$dir.'">';
echo'<input type="text" name="txtsob" value="http://" size="10" maxlength="2000"><br />';
echo'<input type="submit" name="" value="Импортировать файл по url"><br /></p>';
echo'</form>';
echo'<p><a href="explorer.php?act=index&dir='.$dir.'&'.session_name().'='.session_id().'">Назад к списку файлов</a><br />';
echo'<a href="explorer.php?act=index&'.session_name().'='.session_id().'">В корневую папку</a><br /></p>';
}
if($act=="newchmod")
{
$chmd = permissions($dir);
//форма для chmod
echo'<form name="forma" action="explorer.php?'.session_name().'='.session_id().'" method="post">';
echo'<p class="a">Изменить chmod</p>';
echo'<p class="b">';
echo'<INPUT TYPE="hidden" NAME="act" VALUE="chmod">';
echo'<INPUT TYPE="hidden" NAME="dir" VALUE="'.$dir.'">';
echo'<input type="text" name="txtsob" value="'.$chmd.'" size="3" maxlength="3"><br />';
echo'<input type="submit" name="" value="Изменить chmod"><br /></p>';
echo'</form>';
echo'<p><a href="explorer.php?act=index&dir='.$dir.'&'.session_name().'='.session_id().'">Назад к списку файлов</a><br />';
echo'<a href="explorer.php?act=index&'.session_name().'='.session_id().'">В корневую папку</a><br /></p>';
}
if($act=="newnamedir")
{
//форма для переименования
$basename=basename($dir);
echo'<form name="forma" action="explorer.php?'.session_name().'='.session_id().'" method="post">';
echo'<p class="a">Переименование</p>';
echo'<p class="b">';
echo'<INPUT TYPE="hidden" NAME="act" VALUE="rename">';
echo'<INPUT TYPE="hidden" NAME="dir" VALUE="'.$dir.'">';
echo'<input type="text" name="txtsob" value="'.$basename.'" size="10" maxlength="30"><br />';
echo'<input type="submit" name="" value="Переименовать"><br></p>';
echo'</form>';
echo'<p><a href="explorer.php?act=index&dir='.$dir.'&'.session_name().'='.session_id().'">Назад к списку файлов</a><br />';
echo'<a href="explorer.php?act=index&'.session_name().'='.session_id().'">В корневую папку</a><br /></p>';
}
if($act=="dell2")
{
$basename=basename($dir);
if($basename !="explorer.php")
{
//удаление
if(is_dir($dir))
{
function delldir($fldr)
{
$dh = opendir($fldr);
while(($f= readdir($dh)) !== false)
{
if($f != '.' && $f != '..')
{
$path = $fldr.'/'.$f;
if(is_dir($path))
{
delldir($path);
@rmdir($path);
}
elseif(is_file($path))
{
@unlink($path);
}
}
}
closedir($dh);
@rmdir($fldr);
//return $retur;
}
delldir($dir);
}
if(is_file($dir))
{
if(@unlink($dir))
{
echo'<p class="b">Успешно удалено.<br /></p>';
}
else
{
echo'<p class="err">Ошибка!!! Не удалось удалить. Попробуйте установить права доступа CHMOD на файл 666, а на папку 777.<br /></p>';
}
}
$new_dir_url="..";
$new_dir_url_arr = explode("/", $dir);
$i = "0";
$var = count($new_dir_url_arr)-1;
while(++$i < $var)
{$new_dir_url = $new_dir_url."/".$new_dir_url_arr[$i];}
echo'<p><a href="explorer.php?act=index&dir='.$new_dir_url.'&'.session_name().'='.session_id().'">К списку файлов</a><br />';
echo'<a href="explorer.php?act=index&'.session_name().'='.session_id().'">В корневую папку</a><br />';
}
else
{
echo'<p class="err">Ошибка!!! Файл explorer.php удалять нельзя.<br /></p>';
echo'<p class="b"><a href="explorer.php?act=index&dir='.$dir.'&'.session_name().'='.session_id().'">Далее</a><br /></p>';
echo'<p><a href="explorer.php?act=index&'.session_name().'='.session_id().'">В корневую папку</a><br /></p>';
}
}
////////////////////////////////////////////////создание или сохранение файла///////////////////////////////////////////////////
if($act=="save")
{
//$txtsob=stripslashes($txtsob);
if(isset($param)){ $dir="$dir/$param"; $txtsob=""; }
if($filesave = fopen($dir, "w+")){
fputs($filesave,$txtsob);
fclose($filesave);
@chmod($dir, 0666);
echo'<p class="b">Файл успешно создан/сохранен.<br /></p>';
echo'<p><a href="explorer.php?act=index&dir='.$dir.'&'.session_name().'='.session_id().'">К файлу</a><br />';
$new_dir_url="..";
$new_dir_url_arr = explode("/", $dir);
$i = "0";
$var = count($new_dir_url_arr)-1;
while(++$i < $var)
{$new_dir_url = $new_dir_url."/".$new_dir_url_arr[$i];}
echo'<a href="explorer.php?act=index&dir='.$new_dir_url.'&'.session_name().'='.session_id().'">К списку файлов</a><br /></p>';
}
else
{
echo'<p class="err">Ошибка!!! Не удалось создать/сохранить файл. Попробуйте установить права доступа CHMOD на файл 666, а на папку 777.<br /></p>';
}
echo'<p><a href="explorer.php?act=index&'.session_name().'='.session_id().'">В корневую папку</a><br /></p>';
}
////////////////////////////////////////////////создание папки///////////////////////////////////////////////////
if($act=="mkdir")
{
$mkdir="$dir/$param";
if(mkdir($mkdir))
{
@chmod($mkdir, 0777);
echo'<p class="b">Папка '.$mkdir.' успешно создана.<br />';
echo'<a href="explorer.php?act=index&dir='.$dir.'/'.$param.'&'.session_name().'='.session_id().'">В созданную папку</a><br /></p>';
echo'<p><a href="explorer.php?act=index&dir='.$dir.'&'.session_name().'='.session_id().'">К списку</a><br /></p>';
}
else
{
echo'<p class="err">Ошибка!!! Не удалось создать папку '.$dir.'/'.$param.'. Попробуйте установить права доступа CHMOD на папку 777.<br /></p>';
}
echo'<p><a href="explorer.php?act=index&'.session_name().'='.session_id().'">В корневую папку</a><br /></p>';
}
////////////////////////////////////////////////переименование///////////////////////////////////////////////////
if($act=="rename")
{
$new_dir_url="..";
$new_dir_url_arr = explode("/", $dir);
$i = "0";
$var = count($new_dir_url_arr)-1;
while(++$i < $var)
{
$new_dir_url = $new_dir_url."/".$new_dir_url_arr[$i];
}
$new_dir_url = $new_dir_url."/$txtsob";
echo "<p class=\"b\">Успешно переименовано<br /> $dir<br />в<br />$new_dir_url.<br />";
rename($dir, $new_dir_url);
echo'<a href="explorer.php?act=index&dir='.$new_dir_url.'&'.session_name().'='.session_id().'">Далее</a><br /></p>';
echo'<p><a href="explorer.php?act=index&'.session_name().'='.session_id().'">В корневую папку</a><br /></p>';
}
////////////////////////////////////////////////импорт///////////////////////////////////////////////////
if($act=="import")
{
$basename=basename($txtsob);
$loadfile = "$dir/$basename";
if(copy($txtsob, $loadfile))
{
echo'<p class="b">Файл '.$loadfile.' успешно загружен на сервер.<br /></p>';
}
else
{
echo'<p class="err">Ошибка!!! Файл '.$loadfile.' не удалось загрузить. Попробуйте установить права доступа CHMOD на папку 777.<br /></p>';
}
echo'<p class="b"><a href="explorer.php?act=index&dir='.$dir.'&'.session_name().'='.session_id().'">Далее</a><br></p>';
echo'<p><a href="explorer.php?act=index&'.session_name().'='.session_id().'">В корневую папку</a><br></p>';
}
///////////////////////////////////////////////////загрузка файла////////////////////////////////////////////////////////////
if($act=="upload")
{
if(isset($_FILES['userfile']))
{
$file_n = $_FILES['userfile']['name'];
move_uploaded_file($_FILES['userfile']['tmp_name'], "$dir/$file_n");
@chmod("$dir/$file_n", 0666);
echo'<p class="b">Файл успешно загружен.<br /></p>';
}
else
{
echo'<p class="err">Ошибка!!! Произошла ошибка при загрузке файла. Попробуйте установить права доступа CHMOD на папку 777.<br /></p>';
}
echo'<p><a href="explorer.php?act=index&dir='.$dir.'&'.session_name().'='.session_id().'">К списку файлов</a><br />';
echo'<a href="explorer.php?act=index&'.session_name().'='.session_id().'">В корневую папку</a><br /></p>';
}
////////////////////////////////////////////////chmod///////////////////////////////////////////////////
if($act=="chmod")
{
$txtchm = '0'.$txtsob;
if(@chmod($dir, base_convert($txtchm, 8, 10)))
{
echo'<p class="b">CHMOD успешно изменен.<br /></p>';
}
else
{
echo'<p class="err">Ошибка!!! Не удалось изменить права доступа CHMOD. Попробуйте зайти через FTP и изменить права доступа CHMOD на папку 777, а на файл 666.<br /></p>';
}
echo'<p class="b"><a href="explorer.php?act=index&dir='.$dir.'&'.session_name().'='.session_id().'">Далее</a><br></p>';
echo'<p><a href="explorer.php?act=index&'.session_name().'='.session_id().'">В корневую папку</a><br></p>';
}
////////////////////////////////////////////////архивация///////////////////////////////////////////////////
if($act=="ziped")
{
$createZip = new createZip;
//$createZip -> addDirectory("dir/");
//$fileContents = file_get_contents("img.jpg");
//$createZip -> addFile($fileContents, "dir/img.jpg");
if(is_dir($dir))
{
function spisfile($fldr)//Составление списков файлов и папок
{
$dh = opendir($fldr);
while(($f= readdir($dh)) !== false)
{
if($f != '.' && $f != '..' && $f != 'archive.zip')
{
$path = $fldr.'/'.$f;
if(is_dir($path))
{
$str = $str."$path/ ";
$str = $str.spisfile($path, $str);
}elseif(is_file($path))
{
$str = $str."$path ";
}
}
}
closedir($dh);
return $str;
}
//Создаём файлы
$arr_spisfile = explode(" ", spisfile($dir));
$nom = count($arr_spisfile);
$i = "0";
$var = $nom - 1;
while($i < $var)
{
if(is_dir($arr_spisfile[$i]))//
{
$namedir = str_replace("../","",$arr_spisdir[$i]);
$namedir = str_replace("..","",$namedir);
#echo"$namefile<br />";
$createZip -> addDirectory($namedir);
}
if(is_file($arr_spisfile[$i]))//
{
$fileContents = file_get_contents($arr_spisfile[$i]);
$namefile = str_replace("../","",$arr_spisfile[$i]);
$namefile = str_replace("..","",$namefile);
#echo"$namefile<br />";
$createZip -> addFile($fileContents, $namefile);
}
++$i;
}
$fileName = "archive.zip";
$fd = fopen ($fileName, "wb");
$out = fwrite ($fd, $createZip -> getZippedfile());
fclose ($fd);
echo'<p class="b">Архивация прошла успешно. Если в процессе архивирования всё прошло нормально, то архив сохранился в папке /modules/admin.<br /> <a href="archive.zip">Скачать архив</a><br /></p>';
}
else
{
echo'<p class="err">Ошибка!!! Это не папка.<br /></p>';
}
echo'<p><a href="explorer.php?act=index&dir='.$dir.'&'.session_name().'='.session_id().'">К папкам</a><br>';
echo'<a href="explorer.php?act=index&'.session_name().'='.session_id().'">В корневую папку</a><br></p>';
}
////////////////////////////////////////////////////////////////////////////////////////////////////
echo'<p><a href="index.php?'.session_name().'='.session_id().'">В админку</a><br /> <a href="../kabinet/index.php?'.session_name().'='.session_id().'">В кабинет</a><br /></p>';
include '../../templates/foot.php';
}
else
{
include '../../themes/'.$themes.'.php';
echo'<p class="err">Ошибка!!! Вы не авторизованы. Войдите в личный кабинет.<br /></p>';
echo'<p><a href="../kabinet/index.php?'.session_name().'='.session_id().'">В кабинет</a><br /></p>';
include '../../templates/foot.php';
}
?>