ob_start();
session_start();
?>
MM214 FTP
$show_list=1;
/* make sure we are not troubled by wrong ordering */
$submit = trim($_REQUEST["submit"]);
$act = $_REQUEST['act'];
if(isset($submit) && $submit != "")
{
$user = trim($_REQUEST["user"]);
$password = trim($_REQUEST["password"]);
$hostname = trim($_REQUEST["hostname"]);
$_SESSION['hostname'] = $hostname;
$_SESSION['user']= $user;
$_SESSION['password'] =$password;
}
else
{
$user = $_SESSION['user'];
$password = $_SESSION['password'];
$hostname = $_SESSION['hostname'];
$pwd = trim($_SESSION['pwd']);
}
require_once("ftp.php");
/**
* creates an abs path.
*/
function make_path($relPath)
{
global $pwd;
if($pwd != '')
{
return "$pwd/$relPath";
}
else
{
return $relPath;
}
}
/**
* Logs into the FTP server.
*/
function do_login($ftp)
{
global $user, $password;
$ftp->user=$user;
$ftp->pass=$password;
$sock = $ftp->connect();
if($sock)
{
if($ftp->is_ok()==1)
{
if($ftp->login($ftp->user,$ftp->password))
{
return 1;
}
else
{
echo "Login Failed |
\n";
}
}
else
{
echo 'The server returned an unrecognized response. |
';
}
}
return 0;
}
if($hostname !="")
{
$ftp = new FTP($hostname);
if(do_login(&$ftp) != 1)
{
echo "$hostname,$user,$password |
";
echo 'Could not connect to the host that you specified.. |
';
}
if($act == 'cwd')
{
if(isset($_REQUEST['dir']))
{
$dir =trim($_REQUEST['dir']);
if(isset($pwd) && $pwd != '')
{
$dir = $pwd . "/$dir";
}
$pwd = $dir;
$ftp->cwd($dir);
$pwd = $ftp->pwd();
$_SESSION['pwd'] = "";
$_SESSION['pwd'] = $pwd;
ob_flush();
}
}
else if($act == 'cdup')
{
$ftp->cwd("..");
$pwd = $ftp->pwd();
}
else if($act == 'logout')
{
/* clean up previously saved stuff (if any) */
session_unregister("hostname");
session_unregister("user");
session_unregister("password");
session_unregister("pwd");
}
else if($act == 'upload')
{
require_once('upload.html');
}
else if($act == 'rmdir')
{
$ftp->rmd(make_path($_REQUEST['dir']));
}
else if($act == 'delete')
{
$ftp->dele(make_path($_REQUEST['dir']));
}
show_list($ftp->dir_list($pwd));
$ftp->is_ok();
}
else
{
/*
* We don't have enough information to login.
*/
?>
}
?>