<?php
error_reporting(0);
$k=trim($_GET['k']); include("key.php");
$d=rawurldecode(trim($_GET['d'])); $n=rawurldecode(trim($_GET['n']));
if ($d==NULL) {$d="";} elseif ($d=="/") {$d="";}
if ($n==NULL) {$n=preg_replace("~.*/([^/]*)~m","\\1",$d);
$d=preg_replace("~(.*)/[^/]*~m","\\1",$d);}
$rd=rawurlencode($d); $rn=rawurlencode($n);
$d=str_replace(".|htaccess",".htaccess",$d);
$n=str_replace(".|htaccess",".htaccess",$n);
$ac=trim($_GET['ac']); $t=trim($_GET['t']); $go=trim($_GET['go']); $nm=trim($_GET['nm']);
if ($nm<>NULL) {
 $repl=array("\\"=>"",":"=>"","*"=>"","?"=>"","\""=>"","<"=>"",">"=>"","|"=>"");
 $nm=trim(strtr($nm,$repl));
 if ($ac<>"mv") {$nm=str_replace("/","",$nm);}
 include("repl.php"); $nm=u2t($nm);
}

if ($go<>1) {
 $n=str_replace('$','$$',$n); $d=str_replace('$','$$',$d);
 if (($ac=="del")&&($t=="f")) {
include "includes/header.php";
echo '
<div class="box_2">
Путь: <b><a href="ftp.php?k='.$k.'&amp;d='.$rd.'">'.$d.'/</a><a href="file.php?k='.$k.'&amp;d='.$rd.'&amp;n='.$rn.'">'.$n.'</a></b><br/>
</div>
<div class="box_1">
Вы действительно хотите удалить этот файл?<br/>
<b><a href="actn.php?k='.$k.'&amp;d='.$rd.'&amp;n='.$rn.'&amp;ac=del&amp;t=f&amp;go=1">Да</a></b> | <b><a href="ftp.php?k='.$k.'&amp;d='.$rd.'&amp;n='.$rn.'">Нет</a></b>
</div>';
 } elseif ($ac=="delf") {
include "includes/header.php";
echo '
<div class="box_2">
Путь: <b><a href="ftp.php?k='.$k.'&amp;d='.$rd.'&amp;n='.$rn.'">'.$d.'/'.$n.'</a></b><br/>
</div>
<div class="box_1">
Вы действительно хотите удалить эту папку вместе со вложенными файлами и папками?<br/>
<b><a href="actn.php?k='.$k.'&amp;d='.$rd.'&amp;n='.$rn.'&amp;ac=delf&amp;t=d&amp;go=1">Да</a></b> | <b><a href="ftp.php?k='.$k.'&amp;d='.$rd.'&amp;n='.$rn.'">Нет</a></b>
</div>';
 } elseif (($ac=="ren")||($ac=="mv")) {
if ($n==NULL) {
 $n=preg_replace("~.*/([^/]*)~m","\\1",$d); $d=preg_replace("~(.*)/[^/]*~m","\\1",$d);
 $rn=str_replace(".htaccess",".|htaccess",$n);
 $rd=str_replace(".htaccess",".|htaccess",$d);
}
$num=@file_get_contents("allnumbd.dat"); $nar=NULL;
$num++; $nar=$num; if ($num>99999999) {$num=0;}
$f=@fopen("allnumbd.dat","w"); @fwrite($f,$num); @fclose($f);
if ($ac=="ren") {$sn="Новое имя"; $vl=$n;}
else {$sn="Переместить в"; $vl=$d."/".$n;}
include "includes/header.php";
echo '
<div class="box_2">
Путь: <b><a href="ftp.php?k='.$k.'&amp;d='.$rd.'">'.$d.'/</a><a href="file.php?k='.$k.'&amp;d='.$rd.'&amp;n='.$rn.'">'.$n.'</a></b><br/>
</div>
<div class="box_1">
<form action="actn.php" method="get">
<b>'.$sn.'</b>:<br/>
<input name="nm" type="text" value="'.$vl.'" maxlength="250"/><br/>
<input type="hidden" name="k" value="'.$k.'"/>
<input type="hidden" name="d" value="'.$rd.'"/>
<input type="hidden" name="n" value="'.$rn.'"/>
<input type="hidden" name="ac" value="'.$ac.'"/>
<input type="hidden" name="t" value="'.$t.'"/>
<input type="hidden" name="go" value="1"/>
<input type="submit" value="Применить"><br/>
</form>
</div>';
 } elseif (($ac=="at")&&($t=="f")) {
include "includes/header.php";
echo '
<div class="box_2">
Путь: <b><a href="ftp.php?k='.$k.'&amp;d='.$rd.'">'.$d.'/</a><a href="file.php?k='.$k.'&amp;d='.$rd.'&amp;n='.$rn.'">'.$n.'</a></b><br/>
</div>
<div class="box_1">
<form action="actn.php" method="get">
<b>Формат:</b>:<br/>
<select name="ac" value="at2">
<option value="at1">TAR</option>
<option value="at2">TGZ</option>
<option value="at3">TGZ2</option>
<option value="at4">TBZ</option>
<option value="at5">TBZ2</option>
</select><br/>
<input type="hidden" name="k" value="'.$k.'"/>
<input type="hidden" name="d" value="'.$rd.'"/>
<input type="hidden" name="n" value="'.$rn.'"/>
<input type="hidden" name="t" value="'.$f.'"/>
<input type="hidden" name="go" value="1"/>
<input type="submit" value="Добавить"><br/>
</form>
</div>';

 }
} else {$stb="";
 if (($ftp=@ftp_connect($sr))&&(@ftp_login($ftp,$lg,$ps))) {
  @ftp_pasv($ftp,true);
  $st="Действие не выполнено.";
  if (($ac=="del")&&($t=="f")) {//del file
   if (@ftp_delete($ftp,"$d/$n")) {
    @ftp_close($ftp);
    header("Location: $dftp/ftp.php?k=$k&d=$rd"); exit;
   } else {$st="Файл не удалён.";}
  } elseif (($ac=="delf")&&($t=="d")) {//del all dir
   function rdir($conn,$dir) {ftp_chdir($conn,$dir);
    $arr=ftp_nlist($conn,"."); $ctns=count($arr); if ($ctns>700) {$ctns=700;}
    for ($i=0;$i<$ctns;$i++) {$fl=$dir."/".$arr[$i];
     if ((ftp_size($conn,$fl)==-1)&&(preg_replace("~.*/([^/]*)~m","\\1",$fl)<>".")&&
     (preg_replace("~.*/([^/]*)~m","\\1",$fl)<>"..")) {rdir($conn,$fl);}
     else {@ftp_delete($conn,$fl);}
    } ftp_chdir($conn,"/");
    @ftp_delete($conn,$dir."/".".htaccess");
    if (ftp_rmdir($conn,$dir)) {return true;} else {return false;}
   }
   if ($n==NULL) {
    $n=preg_replace("~.*/([^/]*)~m","\\1",$d); $d=preg_replace("~(.*)/[^/]*~m","\\1",$d);
    $rn=str_replace(".htaccess",".|htaccess",$n);
    $rd=str_replace(".htaccess",".|htaccess",$d);
   }
   if (@rdir($ftp,"$d/$n")) {
    @ftp_close($ftp);
    header("Location: $dftp/ftp.php?k=$k&d=$rd"); exit;
   } else {$st="Папка не удалена.";}
   @ftp_close($ftp);
  } elseif (($ac=="mv")&&($t=="d")) {//move dir
   if (@ftp_rename($ftp,$d."/".$n,$nm)) {
    @ftp_close($ftp);
    $nm=str_replace(".htaccess",".|htaccess",$nm);
    $nm=rawurlencode($nm);
    header("Location: $dftp/ftp.php?k=$k&d=$nm"); exit;
   } else {$st="Папка не перемещена.";}
  } elseif (($ac=="ren")&&($t=="d")) {//rename dir
   if (@ftp_rename($ftp,$d."/".$n,$d."/".$nm)) {
    @ftp_close($ftp);
    $nm=str_replace(".htaccess",".|htaccess",$nm);
    $nm=rawurlencode($nm);
    header("Location: $dftp/ftp.php?k=$k&d=$rd&n=$nm"); exit;
   } else {$st="Папка не переименована.";}
  } elseif (($ac=="ren")&&($t=="f")) {//rename file
   if (@ftp_rename($ftp,$d."/".$n,$d."/".$nm)) {
    @ftp_close($ftp);
    header("Location: $dftp/ftp.php?k=$k&d=$rd"); exit;
   } else {$st="Файл не переименован.";}
  } elseif (($ac=="copy")||($ac=="cut")||($ac=="arh")||($ac=="at1")||
   ($ac=="at2")||($ac=="at3")||($ac=="at4")||($ac=="at5")) {//add act
   $flist=@file("data/$k.act");
   $n=str_replace('$','$$',$n); $d=str_replace('$','$$',$d);
   if ($n[strlen($n)-1]=="/") {$n[strlen($n)-1]="";}
   $str="$d/$n|$t|$ac\r\n";
   if ($flist<>NULL) {
    for ($i=0;$i<count($flist);$i++) {if ($i==100) {break;} $str.=$flist[$i];}
   }
   $f=@fopen("data/$k.act","w"); @fwrite($f,$str); @fclose($f);
   if ($t=="d") {$stb="Путь: <b><a href=\"ftp.php?k=$k&amp;d=$d/$n\">$d/$n</a></b><br/>";
   $st="Папка \"".htmlspecialchars($d."/".$n)."\" добавлена в список.";}
   else {$stb="Путь: <b><a href=\"ftp.php?k=$k&amp;d=$rd\">$d/</a><a href=\"file.php?k=$k&amp;d=$rd&amp;n=$rn\">$n</a></b><br/>"; $st="Файл \"".htmlspecialchars($d."/".$n)."\" добавлен в список.";}
  } elseif ($ac=="rm") {//list; remove
   $lnm=rawurldecode(trim(str_replace(".|htaccess",".htaccess",$_GET['lnm'])));
   $lnm=str_replace('$','$$',$lnm);
   if ($flist=@file("data/$k.act")) {$str="";
    for ($i=0;$i<count($flist);$i++) {
     list($p1,$p2,$p3)=split('[|]',$flist[$i]); $p1=trim($p1);
     if ($p1<>$lnm) {$str.=$flist[$i];}
    }
    $f=@fopen("data/$k.act","w"); @fwrite($f,$str); @fclose($f);
    header("Location: $dftp/list.php?k=$k&d=$rd&n=$rn"); exit;
   } else {$st="Запись не удалена.";}
  } elseif ($ac=="rmall") {//list; remove all
   if (unlink("data/$k.act")) {
    header("Location: $dftp/list.php?k=$k&d=$rd&n=$rn"); exit;
   } else {$st="Список не очищен.";}
  }
  @ftp_close($ftp);
include "includes/header.php"; 
echo '
<div class="box_2">'.$stb.'</div>
<div class="box_1">
'.$st.'
</div>';
 } else {
include "includes/header.php"; 
echo '<div class="box_1">
Нет соединения с сервером</div>
<div class="title_page"><a href="index.php">Главная</a></div>';
 }
}
include "includes/footer.php";
?>