PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Daten von FTP-Server anzeigen lassen (http://www.selfphp.de/forum/showthread.php?t=15654)

bekiro 27.12.2006 00:53:42

Daten von FTP-Server anzeigen lassen
 
Hallo zusammen,

ich bin neu hier im Forum und hoffe nicht gleich gegen irgendwelche Regeln zu verstossen. Und wenn ja möge man es mir bitte verzeihen ;)

Mein Chef möchte seinen Kunden die möglichkeit geben Daten per FTP an uns schicken zu können. Die Kunden sollen sich auf unserer Website mit einem Benutzernamen und Passwort einloggen können, um dann die Daten zu senden oder zu empfangen. Dies soll alles mit einem PHP-Script über die Website geschehen.

Das Problem ist, der FTP-Ordner ist nicht auf dem Server des Providers wo auch die Homepage liegt, sondern hier bei uns in der Firma. Das heisst, wir haben eine Festen IP und einen Rechner als FTP-Server vorgesehen. Jeder Kunde soll eigene Zugangsdaten und ein eigenes verzeichnis bekommen.

Der zugang zu dem FTP-Server klappt über einem FTP-Clienten ohne Probleme. Ich möchte nun den Script auf der Homepage so umwandeln, das die Daten die der Kunde zu uns schicken möchte nicht auf dem Server des Providers geladen werden, sondern auf den FTP-Server hier bei uns in der Firma.

Ich habe angefangen einen Script zu schreiben und komme nun nicht mehr weiter. Ich finde einfach keine Lösung für mein Problem. Wie muss die Pfadangabe in dem Script lauten das die Daten auch an einem dem FTP-Server weitergegeben werden können? Ich habe schon so einige schreibweisen ausprobiert, komme jetzt aber nicht mehr weiter.

Würde mich freuen wenn mir jemand helfen könnte. Bin für jede Hilfe dankbar.



Der eigentliche teil ist dieser:
PHP-Code:


$liste 
"<table>";
$liste .= "<tr><td>Ihre Dateien</td></tr>";
$dir opendir($verzeichnis);
while(
$datei readdir($dir)) {
    if ((
$datei != "..") and ($datei != ".")) {
    
$liste .= "<tr><td><a href=\"$ftp_server/$datei\">$datei</a></td></tr>"; } }
$liste .= "</table>";
echo 
$liste



Der gesamte Script:
PHP-Code:


<?php

$ftp_server 
"domain.de"// kann auch ip sein wie 187.129.129.64
$verbindung ftp_connect($ftp_server);

$datei_begrenzen "nein";
$datei_endung = array(".gif",".jpg",".png",".jpeg",".jpg",".pdf",".psd",".eps",".tif",".tiff",".doc",".txt");
$groessen_limit "nein";
$datei_groesse "200000";
$verzeichnis "datenaustausch";






if (
$verbindung) {
    
if (!isset(
$action)) {
    
$action ""; }
    
    switch(
$action) {
    default:
        echo 
'<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
        echo 
'Name: <input type="text" size="60" name="benutzer" value=""><br />';
        echo 
'Passwort: <input type="password" size="60" name="passwort" value=""><br />';
        echo 
'<input type="submit" value="Pr&uuml;fen">';
        echo 
'</form>';

        if (
$_POST["benutzer"] && $_POST["passwort"]) {
            if (
$_POST["benutzer"] == "") {
            
$_POST["benutzer"] = "anonymous"; }
    
            if (
$_POST["passwort"] == "") {
            
$_POST["passwort"] = "anonymous"; }
            
            
$ftp_benutzer $_POST["benutzer"];
            
$ftp_passwort $_POST["passwort"];
            
            
$eingeloggt = @ftp_login($verbindung$ftp_benutzer$ftp_passwort);
    
            if (!
$eingeloggt) {
                echo 
"Ihre Angaben sind nicht korrekt! Der Verbindungasufbau ist Fehlgeschlagen.<br />\n";
                echo 
"Ihre Angaben waren: <b>$ftp_benutzer</b> und <b>$ftp_passwort</b>."; } 
            else {
                echo 
"Sie sind mit dem Server verbunden. <a href=$PHP_SELF?action=upload>Daten Senden</a> oder <a href=$PHP_SELF?action=download>Daten Laden</a>"; } }
            break;
        
    case 
"download":
        echo 
"<a href=$PHP_SELF?action=upload>Daten Senden</a> oder <a href=$PHP_SELF?action=download>Daten Laden</a>";
        
$liste "<table width=700 border=1 bordercolor=#000000 style=\"border-collapse: collapse\">";
        
$liste .= "<tr><td width=700><center><b>Ihre Dateien</b></center></td></tr>";
        
$dir opendir($verzeichnis);
        while(
$datei readdir($dir)) {
            if ((
$datei != "..") and ($datei != ".")) {
                
$liste .= "<tr><td width=700><a href=\"$ftp_server/$datei\">$datei</a></center></td></tr>"; } }
        
$liste .= "</table>";
        echo 
$liste;
        break;

    case 
"upload":
        echo 
"<form method=POST action=$PHP_SELF?action=doupload enctype=multipart/form-data>";
        echo 
"Daten Senden:<br />\n";
        echo 
"<input type=file name=file size=30>";
        echo 
"<button name=submit type=submit>Senden</button>";
        echo 
"</form>";
        break;

    case 
"doupload":
        
$dir "dir";
        if (
$datei != "") {
            if (
file_exists("$verzeichnis/$datei_name")) {
                die(
"Datei existiert bereits"); }
            if ((
$groessen_limit == "ja") && ($datei_groesse $datei_groesse)) {
                die(
"Die Datei ist zu gross. Sie darf nicht groesser als $datei_groesse bytes sein."); }
            
$ext strrchr($datei_name,'.');
            if ((
$datei_begrenzen == "ja") && (!in_array($ext,$datei_endung))) {
                die(
"Die Datei gehoert nicht zu den erlaubten Dateitypen."); }
            @
copy($datei"$verzeichnis/$datei_name") or die("Die Datei konnte nicht auf der FTP-Server kopiert werden."); } 
    else {
        die(
"Datei zum Senden aussuchen"); }
    echo 
$datei_name." wurde gesendet.";
    echo 
"<br><a href=$PHP_SELF?action=upload>Weitere Daten Senden</a> <a href=$PHP_SELF?action=download>Weitere Dateien Downloaden</a>";
    break; }

}

else {
    echo 
"Leider ist der FTP-Server im Augenblick nicht erreichbar.<br />\n";
    echo 
"Bitte versuchen Sie es zu einem anderen Zeitpunkt wieder. <a href='javascript:history.back();'>Zur&uuml;ck</a>"; }
?>



Viele Grüsse. bekiro

xabbuh 27.12.2006 10:13:05

AW: Daten von FTP-Server anzeigen lassen
 
Wenn du auf einen FTP-Server zugreifen möchtest, musst du dafür die FTP-Funktionen von PHP benutzen und nicht auf das Dateisystem des Servers zugreifen.


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:26:59 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.