fehler beim öffnen eines verzeichnisses via ftp und ausgeben der datein drin

deste

Mitglied
Guten Abend,

ich bin gerade dabei, eine Filebase zu scripten. Leider geht mein Script nicht. Das Problem liegt daran das der Ordner in dem die Dateien für die Filebase auf einem anderen Server liegt. Ich muss also per FTP eine Verbindung zu dem Server herstellen, um so einen Ordner auszulesen. Leider ist es mir bis jetzt noch nicht gelungen so ein Script zu machen.
Bei meinem Script kommen Fehler wie :

" Warning: is_dir() [function.is-dir]: SAFE MODE Restriction in effect. The script whose uid is 10354 is not allowed to access / owned by uid 0 in /home/www/htdocs/file.php on line 17 "

line 17 ist " if (is_dir($dir)) { "

Vielen Dank schonmal im vorrauß für eure Hilfe.

Hier ist nun das Script.

PHP:
<?php
$ftp_server = "server";
$ftp_user_name = "user";
$ftp_user_pass = "pwd";
$conn_id = ftp_connect("$ftp_server");
$login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass");
if ((!$conn_id) || (!$login_result)) {
        echo "Ftp-Verbindung nicht hergestellt!";
        echo "Verbindung mit $ftp_server als Benutzer $ftp_user_name nicht möglich";
        die;
    } 
   else {

 $dir = "/httpdocs";

 if (is_dir($dir)) {
   if ($dh = opendir($dir)) {
       while (($file = readdir($dh)) !== false) {
           echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";
        }
        closedir($dh);
    }
 }
}
ftp_quit($conn_id);
?>
 
Zuletzt bearbeitet:
Hallo!

Auf den ersten Blick würde ich sagen dass Du es mal mit:
PHP:
$dir = "./httpdocs";
 
// oder
$dir = "httpdocs";
versuchen solltest.

Gruss Dr Dau
 
Hallo Dr Dau,

wenn ich "./httpdocs" oder "httpdocs" nutze, wird mir nichts angezeigt, also kein Fehler und keine Dateien.

MfG Stefan
 
@Dennis Wronka:

Wie meinst du das mit dem wechsel?
Den die Daten wo angezeigt werden sollen liegen ja nicht auf diesem Server wo die file.php ( die Datei mit dem Code von oben ) liegt.
Ich will ja auf einen anderen Server zufreifen und dort mir die Daten ausgeben lassen.
 
hm, oder (wenn es nur die Fehlermeldung gibt die oben im ersten Beitrag steht) vielleicht einfach mal Safe_Mode bei deinem Server bzw. dem mit den Daten drauf ausstellen.
 
Du willst das Verzeichnis auf dem FTP-Server auslesen, richtig?
Dieser Code
PHP:
$dir = "/httpdocs";

if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";
}
closedir($dh);
kann nur lokale Verzeichnisse lesen.
 
Du könntest Dir so die Dateinamen holen:
PHP:
<?php
$ftp_server = "server";
$ftp_user_name = "user";
$ftp_user_pass = "pwd";
 
$conn_id = @ftp_connect($ftp_server);
$login_result = @ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
 
if ((!$conn_id) || (!$login_result)) {
     echo "Ftp-Verbindung nicht hergestellt!<br>";
     echo "Verbindung mit $ftp_server als Benutzer $ftp_user_name nicht möglich";
     die;
} else {
     $dir = "./httpdocs";
     $list = ftp_nlist($conn_id, $dir);
     $max = count($list)-1;
     $i = 0;
     while($i <= $max) {
          echo "filename: ".$list[$i]."<br>";
          $i++;
     }
}
 
ftp_quit($conn_id);
?>
Allerdings bekommst Du so nicht den Dateityp.
Evtl. kannst Du den ja mittels eines FTP Kommandos den Typ ermitteln?!
Oder Du baust irgend eine Funktion die den Typ anhand der Dateiendung bestimmt (wobei die Dateiendung nichts über den tatsächlichen Dateityp aussagen muss).
 
Zurück