Файл: ftp/actn.php
Строк: 251
<?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);
require_once '../api_core/apicms_system.php';
require_once '../api_core/head.php';
require_once 'moduls/per.php';
$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);
}
echo'<div class="headmenu" style="padding: 8px; color:#fff;" >
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<td><img src="icons/cldir.png" width="16" height="16" alt=">"/>
<a style="color:#fff;" href="ftp.php?k='.$k.'&d='.$rd.'&n='.$rn.'">'.$d.'/'.$n.'</a>
</td>
<td align = "right">
<a class="headbut" href = "/ftp/">На главную</a>
<a class="headbut" href = "javascript:history.back(1)">Назад</a></td>
</div></div></table></div>';
if ($go<>1) {
$n=str_replace('$','$$',$n); $d=str_replace('$','$$',$d);
if (($ac=="del")&&($t=="f")) {
echo '
<div class="subhead">
Вы действительно хотите удалить этот файл?<br/>
<b><a href="actn.php?k='.$k.'&d='.$rd.'&n='.$rn.'&ac=del&t=f&go=1">Да</a></b> | <b><a href="ftp.php?k='.$k.'&d='.$rd.'&n='.$rn.'">Нет</a></b>
</div>';
} elseif ($ac=="delf") {
echo '
<div class="subhead">
Вы действительно хотите удалить эту папку вместе со вложенными файлами и папками?<br/>
<b><a href="actn.php?k='.$k.'&d='.$rd.'&n='.$rn.'&ac=delf&t=d&go=1">Да</a></b> | <b><a href="ftp.php?k='.$k.'&d='.$rd.'&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;}
echo '
<div class="subhead">
<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")) {
echo '
<div class="subhead">
<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);
echo'
<script type="text/javascript">
document.location.href="'.$dftp.'/ftp.php?k='.$k.'&d='.$rd.'";
</script>';
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);
echo'
<script type="text/javascript">
document.location.href="'.$dftp.'/ftp.php?k='.$k.'&d='.$rd.'";
</script>';
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);
echo'
<script type="text/javascript">
document.location.href="'.$dftp.'/ftp.php?k='.$k.'&d='.$rd.'";
</script>';
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);
echo'
<script type="text/javascript">
document.location.href="'.$dftp.'/ftp.php?k='.$k.'&d='.$rd.'";
</script>';
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);
echo'
<script type="text/javascript">
document.location.href="'.$dftp.'/ftp.php?k='.$k.'&d='.$rd.'";
</script>';
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|$acrn";
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&d=$d/$n">$d/$n</a></b><br/>";
$st="Папка "".htmlspecialchars($d."/".$n)."" добавлена в список.";}
else {$stb="Путь: <b><a href="ftp.php?k=$k&d=$rd">$d/</a><a href="file.php?k=$k&d=$rd&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);
echo'
<script type="text/javascript">
document.location.href="'.$dftp.'/list.php?k='.$k.'&d='.$rd.'&n'.$rn.'";
</script>';
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")) {
echo'
<script type="text/javascript">
document.location.href="'.$dftp.'/list.php?k='.$k.'&d='.$rd.'&n'.$rn.'";
</script>';
header("Location: $dftp/list.php?k=$k&d=$rd&n=$rn"); exit;
} else {$st="Список не очищен.";}
}
@ftp_close($ftp);
echo '
<div class="subhead">'.$stb.'</div>
<div class="subhead">
'.$st.'
</div>';
} else {
echo '<div class="subhead">
Нет соединения с сервером</div>
<div class="subhead"><a href="index.php">Главная</a></div>';
}
}
apicms_foot();
?>