Archiv verlassen und diese Seite im Standarddesign anzeigen : ftp funktionen mit php
hi,
ich versuche mich gerade in php, ich wollte gerne als erstes ein script schreiben,
welches mir die dateien/ordner in einem html file auflistet,
die sich in dem aktuellen ordner befinden.
mein erster versuch, aktuelle verzeichnis ausgeben: ftp_pwd
kann ich diese funktion einfach so benutzen oder muss ich noch was beachten?
folgende fehlermeldung habe ich bekommen:
Fatal Error: Call to undefined function: ftp_pwd() in /bla/bla/list.php in line 4711
(ordner und zeilen nummer habe ich geändert)
EDIT:
suse 8.1
apache 2.0.43
php 4.2.2
also, alles lokal auf dem rechner
das deutet darauf hin, dass du die FTP-Funktionen nicht aktiviert hast.
Zum Verzeichnisauflisten würde ich übrigens keine FTP-Verbindung aufbaun :D
http://www.php4-forum.de/beispiele/anwendung_verzeichnis.htm ist sicher ein einfacherer Ansatz (etwas verspielt dazu :D)
Hi,
Original geschrieben von Jaipur
(ordner und zeilen nummer habe ich geändert)
ist das sinnvoll? ;)
probiers mal damit: <? exec("ls"); ?>
Ciao, Bernie
Hallo!
Hier ist mein Vorschlag... das Skript hab ich vor ewigen Zeiten schon geschrieben, aber es is das was du brauchst!
Es Zeigt in dieser Form allerdings nur Dateien mit der Endung php an...
<HTML>
<BODY>
<B>Ok... hier jetzt meine dynamische Indexseite:</B> <BR>
<?
//alle PHP Dateien des Verzeichnisses anzeigen
$dir = opendir(getcwd());
while($file = readdir($dir))
{
if (strtoupper(substr($file, strlen($file)-3)) == "PHP")
{ echo "<a href=$file> $file</a> <BR>"; }
}
closedir($dir);
?>
</BODY>
</HTML>
Viel Spaß
Gaert
PS: Mit dem Skript hab ich auch meine PHP laufbahn begonnen!
Hi,
erstens würde ich an Deiner Stelle für solche Fragen das Programmierboard bemühen www.mrunix.de
Die Programmierforen wurden nämlich von hier dahin ausgelagert.
zweitens, wieso nimmst Du die FTP Funktionen? Die Directory Funktionen http://www.php.net/manual/de/ref.dir.php sind doch dafür viel besser geeignet.
drittens wäre es hilfreich nicht nur die Fehlermeldung zu haben, sondern auch den genauen Aufruf, denn sonst können wir auch nur im düsteren Nebel herum stochern.
viertens sind es, wie Impy schon schrieb, sehr danach aus, alsob ftp gar nicht aktiviert ist. Das würde ich mit phpinfo() einfach mal nachprüfen.
-= Pingu =-
hab auch mal sowas gemacht. nur funzt das copieren und der rename noch nicht...
settings.inc.php
<?
$ftp_server_name = "server.mynet.lan";
$ftp_server_user = "casimir";
$ftp_server_pass = "topenga";
$mysql_server_name = "server.mynet.lan";
$mysql_server_user = "root";
$mysql_server_pass = "";
$mysql_server_daba = "ftp";
$mysql_table_name = "name";
$mysql_table_pass = "passwd";
$mysql_table_dir = "verzeichnis";
function login()
{
echo "<TABLE ALIGN = \"center\">
<FORM ACTION = \"index.php\" METHOD = \"post\">
<TR><TD>Name</TD><TD><INPUT TYPE = \"text\" NAME = \"php_ftp_name\"></TD></TR>
<TR><TD>Passwort</TD><TD><INPUT TYPE = \"password\" NAME = \"php_ftp_pass\"></TD></TR>
<TR><TD><INPUT TYPE = \"submit\"></TD><TD><INPUT TYPE = \"hidden\" NAME = \"setregister\" VALUE = \"true\"></TD><TR>
</TABLE>";
exit;
}
function setuservar($php_ftp_name,$php_ftp_pass)
{
session_register(php_ftp_name);
session_register(php_ftp_pass);
session_register(olddir);
}
function userbasedir($mysql_server_name,$mysql_server_user, $mysql_server_pass,$mysql_server_daba,$php_ftp_nam e,$php_ftp_pass,$ftp_server_name)
{
echo "<TABLE WIDTH = \"100%\">";
if ($link = @mysql_connect($mysql_server_name,$mysql_server_us er,$mysql_server_pass))
echo "<TR><TD WIDTH = \"25%\" ALIGN = \"center\">MySQL-Server</TD><TD WIDTH = \"25%\" ALIGN = \"center\">$mysql_server_name</TD><TD WIDTH = \"25%\" ALIGN = \"center\">connected</TD><TD WIDTH = \"25%\" ALIGN = \"center\"><IMG SRC = \"pics/true.gif\"></TD></TR>";
else
echo "<TR><TD WIDTH = \"25%\" ALIGN = \"center\">MySQL-Server</TD><TD WIDTH = \"25%\" ALIGN = \"center\">$mysql_server_name</TD><TD WIDTH = \"25%\" ALIGN = \"center\">not connected</TD><TD WIDTH = \"25%\" ALIGN = \"center\"><IMG SRC = \"pics/false.gif\"></TD></TR>";
if (@mysql_select_db($mysql_server_daba,$link))
echo "<TR><TD WIDTH = \"25%\" ALIGN = \"center\">MySQL-Datenbank</TD><TD WIDTH = \"25%\" ALIGN = \"center\">$mysql_server_daba</TD><TD WIDTH = \"25%\" ALIGN = \"center\">avalible</TD><TD WIDTH = \"25%\" ALIGN = \"center\"><IMG SRC = \"pics/true.gif\"></TD></TR>";
else
{
echo "<TR><TD WIDTH = \"25%\" ALIGN = \"center\">MySQL-Datenbank</TD><TD WIDTH = \"25%\" ALIGN = \"center\">$mysql_server_daba</TD><TD WIDTH = \"25%\" ALIGN = \"center\">not avalible</TD><TD WIDTH = \"25%\" ALIGN = \"center\"><IMG SRC = \"pics/false.gif\"></TD></TR>";
exit;
}
echo "</TABLE>";
$ergebnis = mysql_query("select verzeichnis from user where name = \"$php_ftp_name\" && passwd = \"$php_ftp_pass\"");
if (mysql_num_rows($ergebnis) != "1")
{
session_unregister(php_ftp_name);
session_unregister(php_ftp_pass);
echo "<P ALIGN = \"center\">Login failed</P>";
echo "<meta http-equiv = \"refresh\" content = \"0; URL = \">";
exit;
}
$zeile = mysql_fetch_row($ergebnis);
return $zeile[0];
mysql_close($link);
}
function connect_ftp($ftp_server_name,$ftp_server_user,$ftp _server_pass,$php_ftp_user,$home)
{
echo "<TABLE WIDTH = \"100%\">";
if ($ftp_link = @ftp_connect($ftp_server_name))
echo "<TR><TD WIDTH = \"25%\" ALIGN = \"center\">FTP-Server</TD><TD WIDTH = \"25%\" ALIGN = \"center\">$ftp_server_name</TD><TD WIDTH = \"25%\" ALIGN = \"center\">connected</TD><TD WIDTH = \"25%\" ALIGN = \"center\"><IMG SRC = \"pics/true.gif\"></TD></TR>";
else
echo "<TR><TD WIDTH = \"25%\" ALIGN = \"center\">FTP-Server</TD><TD WIDTH = \"25%\" ALIGN = \"center\">$ftp_server_name</TD><TD WIDTH = \"25%\" ALIGN = \"center\">not connected</TD><TD WIDTH = \"25%\" ALIGN = \"center\"><IMG SRC = \"pics/false.gif\"></TD></TR>";
if (@ftp_login ($ftp_link, $ftp_server_user, $ftp_server_pass))
echo "<TR><TD WIDTH = \"25%\" ALIGN = \"center\">FTP-Server</TD><TD WIDTH = \"25%\" ALIGN = \"center\">$ftp_server_name</TD><TD WIDTH = \"25%\" ALIGN = \"center\">login</TD><TD WIDTH = \"25%\" ALIGN = \"center\"><IMG SRC = \"pics/true.gif\"></TD></TR>
<TR><TD WIDTH = \"25%\" ALIGN = \"center\">Name / Verzeichnis</TD><TD WIDTH = \"25%\" ALIGN = \"center\">$php_ftp_user</TD><TD WIDTH = \"25%\" ALIGN = \"center\">$home</TD><TD WIDTH = \"25%\" ALIGN = \"center\"><IMG SRC = \"pics/true.gif\"></TD></TR>";
else
{
echo "<TR><TD WIDTH = \"25%\" ALIGN = \"center\">FTP-Server</TD><TD WIDTH = \"25%\" ALIGN = \"center\">$ftp_server_name</TD><TD WIDTH = \"25%\" ALIGN = \"center\">login</TD><TD WIDTH = \"25%\" ALIGN = \"center\"><IMG SRC = \"pics/false.gif\"></TD></TR>";
exit;
}
echo "</TABLE>";
return ($ftp_link);
}
?>
index.php
<?
session_start();
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"standart.css\">";
require("settings.inc.php");
if (!isset($php_ftp_name) || !isset($php_ftp_pass))
login();
if ($setregister == "true")
setuservar($php_ftp_name,$php_ftp_pass);
if (!isset($homedir))
$home = userbasedir($mysql_server_name,$mysql_server_user, $mysql_server_pass,$mysql_server_daba,$php_ftp_nam e,$php_ftp_pass,$ftp_server_name);
if (!isset($ftp_link))
$ftp_link = connect_ftp($ftp_server_name,$ftp_server_user,$ftp _server_pass,$php_ftp_name,$home);
if (!isset($op))
ftp_chdir($ftp_link,$home);
switch($op)
{
case "cdup":
if ($olddir != ftp_pwd($ftp_link) . "/" . $home)
{
if (!@ftp_chdir($ftp_link,$olddir))
ftp_chdir($ftp_link,$home);
else
ftp_cdup($ftp_link);
}
else
ftp_chdir($ftp_link,$home);
break;
case "cddown":
if (!@ftp_chdir($ftp_link,$olddir.$dir))
ftp_chdir($ftp_link,$home);
break;
}
switch($op2)
{
case "download":
echo "ftp_get($ftp_link,$olddir/$file,$file,FTP-BINARY);";
ftp_get($ftp_link,$olddir . "/" . $file,$file,FTP-BINARY);
break;
case "delete":
ftp_delete($ftp_link,$olddir . "/" . $file);
break;
case "rename":
echo $olddir . "/" . $file;
break;
}
$olddir = ftp_pwd($ftp_link);
$inhalt = ftp_nlist($ftp_link,"");
echo "<TABLE ALIGN=\"center\">";
echo "<TR>
<TD><IMG SRC=\"pics/cddown.gif\" WIDTH = \"15\" HEIGHT = \"15\"></TD><TD><A HREF=\"" . $PHP_SELF . "?op=cdup\">..</A></TD></TR>";
for ($i = 0 ; $i < count($inhalt) ; $i++)
{
if (ftp_size($ftp_link,$inhalt[$i]) != "-1")
echo "<TR>
<TD><IMG SRC=\"pics/file.gif\" WIDTH = \"15\" HEIGTH = \"15\"></TD><TD><P>" . $inhalt[$i] . "</P></A></TD>
<TD><P>" . ftp_size($ftp_link,$inhalt[$i]) . " Byte</P></TD>
<TD><P>" . date("d.m.Y",ftp_mdtm($ftp_link,$inhalt[$i])) . "</P></TD>
<TD><A HREF = \"" . $PHP_SELF . "?op=cddown&dir=/&op2=download&file=" . $inhalt[$i] . "\">download</TD>
<TD><A HREF = \"" . $PHP_SELF . "?op=cddown&dir=/&op2=delete&file=" . $inhalt[$i] . "\">löschen</TD>
<TD><A HREF = \"" . $PHP_SELF . "?op=cddown&dir=/&op2=rename&file=" . $inhalt[$i] . "\">umbenennen</TD>
</TR>";
else
echo "<TR>
<TD><IMG SRC=\"pics/cddown.gif\" WIDTH = \"15\" HEIGHT = \"15\"></TD>
<TD><A HREF = \"" . $PHP_SELF . "?op=cddown&dir=/" . $inhalt[$i] . "\">" . $inhalt[$i] . "</A></TD>
<TD><P><<DIR>></P></TD>
<TD></TD>
<TD></TD>
<TD></TD>
<TD></TD>
</TR>";
}
echo "</TABLE>";
ftp_quit($ftp_link);
?>
aber lass das thema mal bei mrunix weiterschreiben...
hi,
@Impy: stimmt, danke!
@bernie: besser, danke!
@Gaert: ja, danke!
... es funzt jetzt.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.