View file admin_panel/explorer_pro.php

File size: 15.28Kb
<?
header('Content-Type: text/html; charset=utf-8');
include('../inc/db.php');
# --- Подключаемся к бд --- #
if(!mysql_connect(DBHOST,DBUSER,DBPASS))
die('Не удалось подключиться к серверу MySql!');
elseif(!mysql_select_db(DBNAME))
die('Не удалось выбрать БД!');
mysql_query("SET NAMES 'utf8';");
$in = mysql_query('SELECT * FROM users WHERE login = "'.$_COOKIE['login'].'"');
$in = mysql_fetch_assoc($in);

if(!empty($in['login']) && $in['pass'] == $_COOKIE['pass'] && $in['status'] == 101){
Error_Reporting(E_ALL & ~E_NOTICE);
if(empty($_GET['zip']) and empty($_GET['download']) & empty($_GET['img'])){
list($msec,$sec)=explode(chr(32),microtime()); 
$HeadTime=$sec+$msec;
echo'<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Менеджер Файлов</title>
<style type="text/css">
body {
font-family:Comic Sans MS;
color:#000FFF;
background-color:#FFFFFF;}
a {
color:#000FFF;
text-decoration:underline;}
a:hover {
color: red;
text-decoration: none; 
position: relative;
top: 1px; left: 1px;}
a:visited {
color: 000FFF;}
b {
color:#FF0000;
font-style:bold;}
table{
background-color: #FFFFFF;
border: 1px solid #FF8800;}
td{
margin: 0px;
padding: 0px; 
border: 1px solid #000FFF;
background-color: #FFFFFF;
color: #f00; }</style>
</head><body>';}
/////////////////////////////////
if(empty($_GET['r']) & empty($_GET['input']) & empty($_GET['ren']) & empty($_GET['setchmod']) & empty($_GET['download']) & empty($_GET['up']) & empty($_GET['upload']) & empty($_GET['chmod']) & empty($_GET['rename']) & empty($_GET['rmdir']) & empty($_GET['made']) & empty($_GET['create']) & empty($_GET['del']) & empty($_GET['deldir']) & empty($_GET['f']) & empty($_GET['edit']) & empty($_GET['zip'])& empty($_GET['img'])){
echo'<b><font color="#000FFF"><hr><hr>Менеджер</font></b><hr><hr>';
if(empty($_GET['d'])){$d="./";}
else{$d=$_GET['d'];}
if($d=="./"){$vverh='.'.$d;}
if($d!=="./"){$vverh=$d.'../';}
echo'<a href="?d='.$vverh.'">Назад</a><br>
<a href="?create='.$d.'">Создать Файл</a><br>
<a href="?up='.$d.'">Загрузить Файл</a><br>
Вы Находитесь В Директории: <font color="#FF0000"><b>'.$d.'</b></font><br>';
echo'</table><hr><font color="#FF0000">Папки:</font><table>';
echo '<table>';
$dir = opendir($d);
while($file = readdir($dir)){
if(is_dir($d.'/'.$file)){
if($file != "." && $file != ".."){
$mod=substr(sprintf("%o",fileperms($d.'/'.$file)),-3);
echo'<tr><td width="350"><img src="?img=1" alt=""><a href="?d='.$d.$file.'/">'.$file.'</a></td><td>Папка</td><td>'.$mod.'</td><td><a href="?zip='.$d.$file.'/"><font color="#000FFF">[Запаковать]</font></a></td><td><a href="?deldir='.$d.$file.'/"><font color="#FF0000">[Удалить]</font></a></td><td><a href="?ren='.$d.$file.'/"><font color="#000FFF">[Переименовать]</font></a></td><td><a href="?chmod='.$d.$file.'/"><font color="#FF0000">[CHMOD]</font></a></td><td><a href="?rmdir='.$d.$file.'/"><font color="#000FFF">[Удалить Папку]</font></a></td></tr>';}}}
echo'</table><hr><font color="#FF0000">Файлы:</font><table>';
$dir = opendir($d);
while($file = readdir($dir)){
if(is_file($d.'/'.$file)){
$mod=substr(sprintf("%o",fileperms($d.'/'.$file)),-3);
echo'<tr><td width="350"><img src="?img=2" alt=""><a href="?r='.$d.$file.'">'.$file.'</a></td><td>'; echo round(filesize("$d/$file")/1024,1); echo' кб.</td><td>'.$mod.'</td><td><a href="?f='.$d.$file.'"><font color="#000FFF">[Изменить]</font></a></td><td><a href="?del='.$d.$file.'"><font color="#FF0000">[Удалить]</font></a></td><td><a href="?ren='.$d.$file.'"><font color="#000FFF">[Переименовать]</font></a></td><td><a href="?chmod='.$d.$file.'"><font color="#FF0000">[CHMOD]</font></a></td><td><a href="?download='.$d.$file.'"><font color="#000FFF">[Скачать]</font></a></td></tr>';}}
echo'</table>';}
/////////////////////////////////
if(isset($_GET['ren'])){
echo'<b><font color="#FF0000">Переименование</font></b><hr>';
echo'<form action="?rename='.$_GET['ren'].'" method="post">
<input name="new_name" value="'.$_GET['ren'].'"><br>
<input type="submit" value="Переименовать!">';}
/////////////////////////////////
if(isset($_GET['img'])){
$images = array("",
"R0lGODlhEwAQALMAAAAAAP///5ycAM7OY///nP//zv/OnPf39////wAAAAAAAAAAAAAAAAAAAAAA".
"AAAAACH5BAEAAAgALAAAAAATABAAAARREMlJq7046yp6BxsiHEVBEAKYCUPrDp7HlXRdEoMqCebp".
"/4YchffzGQhH4YRYPB2DOlHPiKwqd1Pq8yrVVg3QYeH5RYK5rJfaFUUA3vB4fBIBADs=",
"R0lGODlhEwAQAKIAAAAAAP///8bGxoSEhP///wAAAAAAAAAAACH5BAEAAAQALAAAAAATABAAAANJ".
"SArE3lDJFka91rKpA/DgJ3JBaZ6lsCkW6qqkB4jzF8BS6544W9ZAW4+g26VWxF9wdowZmznlEup7".
"UpPWG3Ig6Hq/XmRjuZwkAAA7");
header("Content-type: image/gif");
echo base64_decode($images[$img]);}
/////////////////////////////////
if(isset($_GET['up'])){
echo'<b><font color="#FF0000">Загрузка Файлов</font></b><hr>';
echo'<form method="post" enctype="multipart/form-data">
<input type="hidden" name="upload" value="'.$_GET['up'].'">
<input type="file" name="file"><br>
Сохранить как:<br><input type="text" name="new_name" value=""><br>
<input type="submit" value="Загрузить"></form>';}
/////////////////////////////////
if(isset($_POST['upload'])){
$new_name=trim($_POST['new_name']);
if(copy($_FILES["file"]["tmp_name"], $_POST['upload'].$new_name)){
echo 'Файл успешно загружен';}
else{echo 'Загрузка файла не удалась!';}}
/////////////////////////////////
if(isset($_GET['download'])){
$file = file_get_contents($_GET['download']);
$name = explode("/",$_GET['download']);
$name = $name[count($name)-1];
header('Content-type: text/plain');
header("Content-disposition: attachment; filename=$name");
echo $file;}
/////////////////////////////////
if(isset($_GET['chmod'])){
echo'<b><font color="#FF0000">CHMOD</font></b><hr>';
$mod=substr(sprintf("%o",fileperms($_GET['chmod'])),-3);
echo'<form action="?setchmod='.$_GET['chmod'].'" method="post">
<input name="chmods" value="'.$mod.'"><br>
<input type="submit" value="Изменить">';}
/////////////////////////////////
if(isset($_GET['setchmod'])){
echo'<b><font color="#FF0000">CHMOD</font></b><hr>';
$chm = chmod($_GET['setchmod'],'0'.$_POST['chmods']);
if($chm){echo'Chmod '.$_POST['chmods'].' заданы!';}
if(!$chm){echo'Ошибка изменения CHMOD '.$_POST['chmods'].'!';}}
/////////////////////////////////
if(isset($_GET['rmdir'])){
echo'<b><font color="#FF0000">Удаление Папки</font></b><hr>';
$dir = opendir($_GET['rmdir']);
while($dirs = readdir($dir)){
if(is_dir($_GET['rmdir'].$dirs)){
if($dirs != "." && $dirs != ".."){
$poddir = rmdir($_GET['rmdir'].$dirs);}}}
closedir($dir);
$ddir = rmdir($_GET['rmdir']);
if($ddir){echo'Папка Удалена!';}
if(!$ddir){echo'Ошибка Удаления!';}
if($poddir){echo'<br>Подпапки Удалены!';}
if(!$poddir){echo'<br>Ошибка Удаления Подпапок!';}}
/////////////////////////////////
if(isset($_GET['rename'])){
echo'<b><font color="#FF0000">Переименование</font></b><hr>';
$name = rename($_GET['rename'],$new_name);
if($name){echo'Переименовано!';}
if(!$name){echo'Ошибка Переименования!';}}
/////////////////////////////////
if(isset($_GET['r'])){
echo'<b><font color="#FF0000">Чтение Файла</font></b><hr>';
$file=file($_GET['r']);
if($file){
for($i=0; $i<count($file); $i++){
$file[$i] = htmlspecialchars($file[$i]);
echo '<small>'.$file[$i].'</small><br>';}}
if(!$file){echo'Ошибка Чтения Файла!';}}
/////////////////////////////////
if(isset($_GET['del'])){
echo'<b><font color="#FF0000">Удаление Файла</font></b><hr>';
$delete = unlink($_GET['del']);
if($delete){print 'Файл <b>'.$_GET['del'].'</b> Удален!<hr>';}
if(!$delete){print 'Ошибка Удаления Файла <b>'.$_GET['del'].'</b>!';}}
/////////////////////////////////
if(isset($_GET['deldir'])){
echo'<b><font color="#FF0000">Удаление Файлов Из Папок</font></b><hr>';
$dir = opendir($_GET['deldir']);
while($files = readdir($dir)){
if(is_file($_GET['deldir'].$files)){
$del = unlink($_GET['deldir'].$files);}
if(is_dir($_GET['deldir'].$files) && $files !="." && $files !=".."){
$odir = opendir($_GET['deldir'].$files);
while($reddir = readdir($odir)){
if(is_file($_GET['deldir'].$files.'/'.$reddir)){
$delet = unlink($_GET['deldir'].$files.'/'.$reddir);}}}}
if($del){print 'Файлы Из Папки <b>'.$_GET['deldir'].'</b> Удалены!';}
if(!$del){print 'Ошибка Удаления Файлов Из Папки <b>'.$_GET['deldir'].'</b>!';}
if($delet){print'<br>Файлы Из Подпапок В Папке <b>'.$_GET['deldir'].'</b> Удалены!';}
if(!$delet){print'<br>Ошибка Удаления Файлов Из Подпапок В Папке <b>'.$_GET['deldir'].'</b>!';}}
/////////////////////////////////
if(isset($_GET['f'])){
echo'<b><font color="#FF0000">Редактирование Файла</font></b><hr>';
$file = file_get_contents($_GET['f']);
$file = htmlspecialchars($file);
echo'<form action="?edit='.$_GET['f'].'" method="post">
<textarea cols="100" rows="15" name="text">'.$file.'</textarea><br>
<input type="submit" value="Редактировать!">';}
/////////////////////////////////
if(isset($_GET['create'])){
echo'<b><font color="#FF0000">Создание Файла</font></b><hr>';
echo'<form action="?made='.$_GET['create'].'" method="post">
<input name="new_name" value="Имя Файла - Mobil"><br><br>
<textarea cols="100" rows="15" name="new_file">Содержимое Файла - By Mobil</textarea><br>
<input type="submit" value="Создать">';}
/////////////////////////////////
if(isset($_GET['made'])){
echo'<b><font color="#FF0000">Создание Файла</font></b><hr>';
$fp = fopen($_GET['made'].$_POST['new_name'],"w");
fputs($fp,$_POST['new_file']);                                   
fclose($fp);
chmod($_GET['made'].$_POST['new_name'], 0777);
if($fp){echo'Файл Создан!';}
if(!$fp){echo'Ошибка Создания Файла!';}}
/////////////////////////////////
if(isset($_GET['edit'])){
echo'<b><font color="#FF0000">Редактирование Файла</font></b><hr>';
$fp = fopen($_GET['edit'],"w");
fputs($fp,$_POST['text']);                                   
fclose($fp);
chmod($_GET['edit'], 0777);
if($fp){echo'Файл Изменен!';}
if(!$fp){echo'Ошибка Изменения Файла!';}}
/////////////////////////////////
if(isset($_GET['zip'])){

class zipfile
{

    var $datasec = array(); 
    var $ctrl_dir = array(); 
    var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00"; 
    var $old_offset = 0;

    function add_dir($name)

    {
        $name = str_replace("\\", "/", $name);

        $fr = "\x50\x4b\x03\x04";
        $fr .= "\x0a\x00";   
        $fr .= "\x00\x00";   
        $fr .= "\x00\x00";   
        $fr .= "\x00\x00\x00\x00"; 
        $fr .= pack("V",0); 
        $fr .= pack("V",0); 
        $fr .= pack("V",0); 
        $fr .= pack("v", strlen($name) ); 
        $fr .= pack("v", 0 ); 
        $fr .= $name;
        $fr .= pack("V",$crc); 
        $fr .= pack("V",$c_len); 
        $fr .= pack("V",$unc_len); 
        $this -> datasec[] = $fr;
        $new_offset = strlen(implode("", $this->datasec));
        $cdrec = "\x50\x4b\x01\x02";
        $cdrec .="\x00\x00";    
        $cdrec .="\x0a\x00";    
        $cdrec .="\x00\x00";    
        $cdrec .="\x00\x00";   
        $cdrec .="\x00\x00\x00\x00"; 
        $cdrec .= pack("V",0); 
        $cdrec .= pack("V",0); 
        $cdrec .= pack("V",0); 
        $cdrec .= pack("v", strlen($name) ); 
        $cdrec .= pack("v", 0 ); 
        $cdrec .= pack("v", 0 ); 
        $cdrec .= pack("v", 0 ); 
        $cdrec .= pack("v", 0 ); 
        $ext = "\x00\x00\x10\x00";
        $ext = "\xff\xff\xff\xff";
        $cdrec .= pack("V", 16 ); 
        $cdrec .= pack("V", $this -> old_offset ); 
        $this -> old_offset = $new_offset;
        $cdrec .= $name;
        $this -> ctrl_dir[] = $cdrec;
    }


    function add_file($data, $name)
    { $name = str_replace("\\", "/", $name);
$fr = "\x50\x4b\x03\x04";
        $fr .= "\x14\x00";    
        $fr .= "\x00\x00";    
        $fr .= "\x08\x00";    
        $fr .= "\x00\x00\x00\x00"; 

        $unc_len = strlen($data);
        $crc = crc32($data);
        $zdata = gzcompress($data);
        $zdata = substr( substr($zdata, 0, strlen($zdata) - 4), 2); 
        $c_len = strlen($zdata);
        $fr .= pack("V",$crc); 
        $fr .= pack("V",$c_len); 
        $fr .= pack("V",$unc_len); 
        $fr .= pack("v", strlen($name) ); 
        $fr .= pack("v", 0 ); 
        $fr .= $name;
        $fr .= $zdata;
        $fr .= pack("V",$crc); 
        $fr .= pack("V",$c_len); 
        $fr .= pack("V",$unc_len); 
        $this -> datasec[] = $fr;
        $new_offset = strlen(implode("", $this->datasec));
        $cdrec = "\x50\x4b\x01\x02";
        $cdrec .="\x00\x00";    
        $cdrec .="\x14\x00";  
        $cdrec .="\x00\x00";   
        $cdrec .="\x08\x00";   
        $cdrec .="\x00\x00\x00\x00"; 
        $cdrec .= pack("V",$crc); 
        $cdrec .= pack("V",$c_len); 
        $cdrec .= pack("V",$unc_len);
        $cdrec .= pack("v", strlen($name) ); 
        $cdrec .= pack("v", 0 ); 
        $cdrec .= pack("v", 0 ); 
        $cdrec .= pack("v", 0 ); 
        $cdrec .= pack("v", 0 ); 
        $cdrec .= pack("V", 32 ); 

        $cdrec .= pack("V", $this -> old_offset ); 
        $this -> old_offset = $new_offset;

        $cdrec .= $name;
        $this -> ctrl_dir[] = $cdrec;
    }

    function file() { 
        $data = implode("", $this -> datasec);
        $ctrldir = implode("", $this -> ctrl_dir);
        return
            $data.
            $ctrldir.
            $this -> eof_ctrl_dir.
            pack("v", sizeof($this -> ctrl_dir)).    
            pack("v", sizeof($this -> ctrl_dir)). 
            pack("V", strlen($ctrldir)).   
            pack("V", strlen($data)).    
            "\x00\x00"; }}
$abort = ignore_user_abort(1);
$zipfile = new zipfile();
$fdir = opendir($_GET['zip']);
while($file = readdir($fdir)){
if ($file != '.' and $file != '..'){
if (is_file($_GET['zip'].$file)){$zipfile->add_file(file_get_contents($_GET['zip'].$file),$file);}
if (is_dir($_GET['zip'].$file)){
$sdir = opendir($_GET['zip'].$file);
while($sfile = readdir($sdir)){
if ($sfile != '.' and $sfile != '..'){
if (is_file($_GET['zip'].$file.'/'.$sfile)){$zipfile->add_file(file_get_contents($_GET['zip'].$file.'/'.$sfile), $file.'/'.$sfile);}}}}}}
$name = explode("/",$_GET['zip']);
$file = $name[count($name)-2];
header('Content-type: application/octet-stream');
header("Content-disposition: attachment; filename=$file.zip");
echo $zipfile->file();}
/////////////////////////////////
if(empty($_GET['zip']) and empty($_GET['download']) & empty($_GET['img'])){
echo'<br><a href="?">На Главную</a><br>';
list($msec,$sec)=explode(chr(32),microtime());
echo round((($sec+$msec)-$HeadTime),4).' Сekунд<br>';

echo'<hr></body></html><hr>';}
}
?>