Skrypt do łaczenia sie przez ftp ze stroną, zapewnia działanie większości funkcji normalnego klienta ftp. Dane hosta, login i hasło zapisują się w cookie i następnym razem nie trzeba wprowadzać.
UWAGA: autor nie daje gwarancji działania tego skryptu na każdym serwerze.
Utwórz plik ftp.php i daj do niego kod:
<?php
require_once "include/bittorrent.php";
dbconn();
loggedinorreturn();
stdhead("Klient FTP");
/*
//////////////////////////////////////////////////////////////
-other-
this script may or may not work on your server. i accept no
liability for it's actions in perpetuity throughout the
universe.
(btw, if it doesn't work, you need to have the ftp functions
enabled in php, when you compile have um... --ftp=yes as an
argument i think)
-written by-
Paul Murphy <paul@murphy.dk>, 2001
-function-
ftp script to ftp to a site. can perform most functions
of a normal ftp client.
-bugs-
downloading: there are some strict permissions, in unix
the directory must be 777, in windows, i can't get it
to work. easiest way out is just to download from the
http site.
up one level: if the path, and current folder name have
similar strings, eg. /home/smiley/public_html/smile/,
the up one level thingy will try to go /home/y/public_html/,
which obviously isn't right. solution: just type it
in the dir=x thingy in the url window.
//////////////////////////////////////////////////////////////
*/
// quick "die" function
function funk_die($msg) {
if($msg=='normal') {
return "<html><body><a href=\"ftp.php\">Powrót</a></body></html>";
}
}
// function to give dir listing stuff
function dir_funk () {
// cookie?
global $ftp;
// dir name
$dir=ftp_pwd($ftp);
// dir listing array
$dirlist=ftp_rawlist($ftp,$dir);
// print the directory listing
$funk = "<html><body><p>Obecny folder: <b> $dir </b></p>";
$funk .= "<p><a href=\"ftp.php?&updir=$dir\">Poziom wyżej</a>
</p>";
$funk .= "<p>
<table cellspacing=0 cellpadding=2 border=1>
<tr><td><b>Pozwolenie</b></td><td><b>Plik/Folder</b></td>
<td><b>Pobierz</b></td><td><b>Usuń</b></td>
<td><b>Chmoduj</b></td><td><b>Zmień nazwę</b></td>
</tr>
";
while(list($i,$thingy)=each($dirlist)) {
$thingy=preg_replace("/\s+/", " ", $thingy);
if($i==0) {
echo "";
} else {
list($chmod,$thing,$owner,$group,$size,$month,$day,$time,$filename)=explode(" ",$thingy);
if(ereg("d",$chmod)) {
$funk .= "<tr><td>$chmod</td><td><a href=\"ftp.php?dir=$dir/$filename\">$filename</a></td>
<td>Folder</td>
<td><a href=\"ftp.php?delete=dir&thingy=$dir/$filename\">Usuń</a></td>
<td><a href=\"ftp.php?chmod=1&thingy=$dir/$filename\">Chmoduj</a></td>
<td><a href=\"ftp.php?rename=$dir/$filename\">Zmień nazwę</a></td>
</tr>";
} else {
$funk .= "<tr><td>$chmod</td><td>$filename</td>
<td><a href=\"ftp.php?dl=1&file=$dir/$filename\">d/l ($size)</a></td>
<td><a href=\"ftp.php?delete=file&thingy=$dir/$filename\">Usuń</a></td>
<td><a href=\"ftp.php?chmod=1&thingy=$dir/$filename\">Chmoduj</a></td>
<td><a href=\"ftp.php?rename=$dir/$filename\">Zmień nazwę</a></td>
</tr>";
}
}
}
$funk .= "</table>
</p>";
$funk .= "<p>Utwórz nowy folder<br>
<form action=\"ftp.php\" method=\"POST\">
<input size=\"15\" name=\"name\">
<input type=\"hidden\" name=\"current_dir\" value=\"$dir\">
<input type=\"submit\" name=\"newdir\" value=\"Utwórz folder\">
</form>
</p>";
$funk .= "<p>Wstaw lokalny plik<br>
<form action=\"ftp.php\" method=\"POST\">
<input type=\"file\" name=\"localfile\"><br>
<input type=\"hidden\" name=\"current_dir\" value=\"$dir\">
<input type=\"submit\" name=\"upload\" value=\"Wstaw plik\">
</form>
</p>";
$funk .= "</body></html>";
return $funk;
}
if(!$login) {
// print the login form
echo "<html><body><p><b>Login do FTP</b><hr></p>
<form action=\"ftp.php\" method=\"POST\">
<p>Serwer (ng ftp.twojastrona.com)<br> <input size=\"30\" name=\"server\"></p>
<p>Login <br> <input size=\"30\" name=\"username\"></p>
<p>Hasło <br> <input size=\"30\" name=\"password\"></p>
<p><input type=\"submit\" name=\"login\" value=\"login\"></p>
</form></body></html>";
} else {
// try to connect or die with an error
$ftp=ftp_connect($server) or die("Niewła¶ciwy serwer");
// try to login or die with error
$conn=ftp_login($ftp,$username,$password) or die("Logowanie nie powiodło się");
// set a cookie so the !$login form above is never displayed
setcookie("login","active");
// set goody cookies
setcookie("server",$server);
setcookie("username",$username);
setcookie("password",$password);
if($dir) {
ftp_chdir($ftp,$dir);
echo dir_funk();
} elseif($dl) {
if($get) {
if(!$local) {
die("Proszę wpisać warto¶ć");
}
ftp_get($ftp, $local, $file, FTP_BINARY);
echo funk_die(normal);
} else {
echo "<html><body>";
echo "download file";
$size=ftp_size($ftp,$file);
$time=ftp_mdtm($ftp,$file);
$time=date("d M Y, H i",$time);
echo "<p><table cellspacing=0 cellpadding=2 border=1>
<tr><td><b>Nazwa pliku</b></td><td><b>Rozmiar</b></td>
<td><b>Data modyfikacji</b></td></tr>
<tr><td>$file</td><td>$size</td><td>$time</td></tr></table>";
echo "<form action=\"ftp.php\" method=\"POST\">
Dok±d pobrać pliki (/home/me/file.txt lub c:/file.txt):<br>
<INPUT NAME=\"local\" size=\"40\">
<input type=\"hidden\" name=\"dl\" value=\"1\">
<input type=\"hidden\" name=\"file\" value=\"$file\"><br>
<INPUT TYPE=\"submit\" name=\"get\" VALUE=\"Pobierz plik\">
</FORM>";
echo "</body></html>";
}
} elseif($rename) {
if($do) {
if(!$val) {
die("please enter a value");
}
ftp_rename($ftp, $rename, $val);
echo funk_die(normal);
} else {
echo "<html><body>
Zmień nazwę: $rename
<p>
<form action=\"ftp.php\" method=\"POST\">
Zmień na: <input size=\"50\" name=\"val\" value=\"$rename\"><br>
<input type=\"hidden\" name=\"rename\" value=\"$rename\">
<input type=\"submit\" name=\"do\" value=\"Zmień\">
</form>
</body></html>";
}
} elseif($chmod) {
if($do) {
if(!$val) {
die("Proszę podać warto¶ć");
}
$cmd="CHMOD $val $file";
ftp_site($ftp, $cmd);
echo funk_die(normal);
} else {
echo "<html><body>
Chmoduj plik: $thingy
<p>
<form action=\"ftp.php\" method=\"POST\">
<input size=\"4\" name=\"val\" maxlength=\"4\"> Warto¶ć CHMOD <br>
<input type=\"hidden\" name=\"file\" value=\"$thingy\">
<input type=\"hidden\" name=\"chmod\" value=\"1\">
<input type=\"submit\" name=\"do\" value=\"Chmod\">
</form>
</body></html>";
}
} elseif($delete) {
if($delete=='file') {
ftp_delete($ftp, $thingy);
} elseif($delete=='dir') {
ftp_rmdir($ftp, $thingy);
}
echo funk_die(normal);
} elseif($upload) {
if(!$localfile) { die("Proszę podać plik"); }
$file = substr( strrchr( $localfile, "/" ), 1 );
$put_thingy = $current_dir . "/" . $file;
ftp_put($ftp, $put_thingy, $localfile, FTP_BINARY);
echo funk_die(normal);
} elseif($newdir) {
if(!$name) { die("Proszę podać nazwę"); }
$newdir = $current_dir . "/" . $name;
ftp_mkdir($ftp,$newdir);
echo funk_die(normal);
} elseif($updir) {
$newdir = str_replace( substr( strrchr( $updir, "/" ), 1 ) , "", $updir);
ftp_chdir($ftp,$newdir);
echo dir_funk();
} else {
echo dir_funk();
}
}
?>Podziękowania dla RAW za kod
Tłumaczenie: mild