<?php
// ftp by jasis//
$title='FTP';
include'system/head.php';
include'system/func.php';
include'system/ftp_connect.php';
switch(@$act){
default:
@$d=prov($_GET['d']);
if(empty($d)){ $d='/'; $de=''; }else{ $de=$d; $d=$d.'/';}
if($d!="/") echo'<div id=war><img src="img/back.png" alt="<"> <a href="/mgr/panel">В начало</a><br>
<img src="img/back.png" alt=".."> <a href="/mgr/panel?d='.verh($d).'">Вверх</a></div><div id=menu>Выберете папку или файл</div>';
ftp_pasv($serv,true);
$lines = ftp_rawlist($serv, "$d");
// закрытие соединения
ftp_close($serv);
if($lines==false){
echo'<div id=err>Не верный путь</div><div id=menu2>';
}else{
$couf=0; $coud=0;
// вывод буфера
for ($i=0;$i<count($lines);$i++) {
$name=preg_replace("~([^\s]*[\s]*){8}\s{1}(.*)~m","\\2",$lines[$i]);
if ($name!="." && $name!=".." && !preg_match('/->/i',$name)){
$size=preg_replace("~([^\s]*[\s]*){4}\s{1}([^\s]*)(.*)~m","\\2",$lines[$i]);
$chm=preg_replace("~([^\s]*).*~m","\\1",$lines[$i]);
$nchm=dechm($chm);
if ($size<100) {$sz=$size."b";}
elseif ($size<1024) {$sz=str_replace(".",",",round($size/1024,1))."kb";}
elseif ($size<102400) {$sz=round($size/1024)."kb";}
else {$sz=str_replace(".",",",round($size/1024/1024,1))."mb";}
if ($chm[0]=="-") {
if($name==".htaccess") $nams='<span style="color: #ff0000;">'.$name.'</span>'; else $nams=$name;
echo '<div id=menu2><a href="/mgr/file?d='.$d.$name.'">'.$nams.'</a> ['.$nchm.'] '.$sz.' </div>';
$couf++;
}else{
if($d!="/") echo '<div id=war><a href="/mgr/dir?d='.$d.$name.'"><img src="img/dir.gif" alt="*"></a><a href="/mgr/panel?d='.$d.$name.'">'.$name.'</a></div>';
else echo'<div id=war><a href="/mgr/dir?d='.$d.$name.'"><img src="img/dir.gif" alt="*"></a><a href="/mgr/panel?d='.$d.$name.'">'.$name.'</a> ['.$nchm.'] '.$sz.' </div>';
$coud++;
}
}
}
if($couf == 0 && $coud == 0) echo'<div id=err>Папка пуста</div>';
echo'<br><div id=suc>Папок: '.$coud.' / Файлов: '.$couf.'</div>';
echo'<div id="menu2">Меню<br>';
}
if($d!="/"){
echo'
<a href="/mgr/panel?act=newdir&d='.$de.'">Создать папку</a><br>
<a href="/mgr/panel?act=newfile&d='.$de.'">Создать файл</a><br>
';
} else {
echo'
<a href="/mgr/panel?act=newdir&d=/">Создать папку</a><br>
<a href="/mgr/panel?act=newfile&d=/">Создать файл</a><br>
';
}
echo'<a href="/mgr/login?act=exit">Выйти с панели</a>';
break;
case'newdir':
@$d=prov($_GET['d']);
if(empty($d)){
echo error('Ошибка, нет нужных данных','/mgr/panel','Назад');
}else{
ftp_pasv($serv,true);
$lines = ftp_rawlist($serv, "$d");
if($lines==false){
echo error('Не верный путь','/mgr/panel','Назад');
}else{
if(isset($_GET['go']) && !empty($_POST['name'])){
if(preg_match('#[^a-zA-Z0-9_\-]#ui',$_POST['name'])){
echo error('Обнаружены запрещенные символы','/mgr/panel?d='.$d,'Назад');
}else{
$dir=$d.'/'.$_POST['name'];
if (ftp_mkdir($serv,$dir)) {
echo '<div id=suc>Папка успешно создана! <br><a href="/mgr/panel?d='.$d.'">Продолжить!</a></div>';
} else {
echo error('Не удалось создать папку','/mgr/panel?d='.$d,'Назад');
}
}
}else{
echo'<div><form action="ftp.php?go&act=newdir&d='.$d.'" method="post">';
echo'В название папки можно использовать (A-Za-z0-9_-):<br><input type="text" name="name" value="" size="18"> <input type="submit" value="Создать"></form></div><br>';
}
}
}
// закрытие соединения
ftp_close($serv);
break;
case'newfile':
@$d=prov($_GET['d']);
if(empty($d)){
echo error('Ошибка, нет нужных данных','/mgr/panel','Назад');
}else{
ftp_pasv($serv,true);
$lines = ftp_rawlist($serv, "$d");
if($lines==false){
echo error('Не верный путь','/mgr/panel','Назад');
}else{
if(isset($_GET['go']) && !empty($_POST['name'])){
if(preg_match('#[^a-zA-Z0-9_\-\.]#ui',$_POST['name'])){
echo error('Обнаружены запрещенные символы','/mgr/panel?d='.$d,'Назад');
}else{
file_put_contents('tmp/'.$savedir.'/'.$_POST['name'],'',0664);
$remote_file=$d.'/'.$_POST['name'];
$file='tmp/'.$savedir.'/'.$_POST['name'];
if (ftp_put($serv, $remote_file, $file, FTP_BINARY)) {
echo '<div id=suc>Файл успешно создан! <br><a href="/mgr/panel?d='.$d.'">Продолжить!</a></div>';
} else {
echo error('Не удалось создать файл','/mgr/panel?d='.$d,'Назад');
}
@unlink('tmp/'.$savedir.'/'.$_POST['name']);
}
}else{
echo'<div><form action="ftp.php?go&act=newfile&d='.$d.'" method="post">';
echo'В название файла можно использовать (A-Za-z0-9_-):<br><input type="text" name="name" value="" size="18"> <input type="submit" value="Создать"></form></div><br>';
}
}
}
// закрытие соединения
ftp_close($serv);
break;
}
echo '</div></div></div>';
include'system/foot.php';
?>