Opendir - Verzeichnis auf FTP-Server öffnen klappt nicht

  • PHP

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Link275.

    Opendir - Verzeichnis auf FTP-Server öffnen klappt nicht

    Hi Leute,

    hab grad das Problem dass opendir bei Öffnen eines Verzeichnisses, welches auf einem FTP-Server liegt, nicht klappt.
    Das komplizierte daran ist, dass es bei mir funktioniert und bei jemand anderem nicht. Gut, so kann man zumindest festhalten, dass keine Servereinstellung oder falsch eingestellte Zugriffsrechte der Grund sind. Es muss was lokales sein. Dass opendir ein Verzeichnis auf dem FTP generell nicht öffnen kann, kann ich ausschließen, denn installiert ist beim Kollegen die PHP Version 5.3x, und die muss das auf jeden Fall unterstützen. Was kann es also sonst sein? Bei mir funzt es tadellos, bei ihm nicht.. Vielleicht eine falsche Einstellung in der php.ini, welche diese Aktion unterbinden könnte? Und wenn ja, welcher Eintrag wäre das? Dann könnte ich das zumindest für dieses Skript per ini_set() umstellen.
    Hat jemand eine Idee warum das so sein könnte?


    Link :thumbup:
    Hello World
    Hi,

    das kann ich ausschließen weil auch ich meine Skripte lokal gespeichert habe. Ebenso wie mein Kollege. Wir greifen also beide lokal auf die Files auf dem Server zu (opendir), mit dem Unterschied dass es bei mir klappt, und bei ihm nicht. Ausgeführt wird das Skript natürlich. Fehlermeldung ist folgende:

    PHP-Quellcode

    1. Warning: opendir(ftp://...@ftp.marius-gerum.de/) [function.opendir]: failed to open dir: not implemented in /share/folder/Web/folder/myfile.php on line 41


    Und dass aber die URL stimmt ist auch relativ sicher (wie schon gesagt, bei mir geht's ja, und wir ham dasselbe Skript):

    PHP-Quellcode

    1. opendir('ftp://ftpUser:ftpPass@ftp.marius-gerum.de');



    Link :thumbup:
    Hello World

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Link275“ ()

    Achso ihr nutzt es um auf FTP zuzugreifen, das ja eher ungewöhnlich möchte ich meinen, dachte auf ein lokales Verzeichnis *g*

    Nun es könnte sein das der Server deines Kumpels keine anderen Ports als 80 erlaubt und somit Port 21 für FTP nicht raus kann.

    Ich würde sowas auch nicht über Opendir machen, weil das ja doch eher für lokale Verzeichnisse gedacht ist. Wieso nutzt du nicht die PHP eigene FTP Klasse für eine Verbindung, vlt. bekommst du da dann auch bessere Fehlermeldungen wenn keine Verbindung aufgebaut werden kann

    php.net/manual/de/book.ftp.php
    Hi Dodo,

    dank dir für die Vorschläge. Dass ich es mit den PHP eigenen FTP-Funktionen machen kann, ist mir bewusst. So ist es ja auch implementiert. Es geht hier aber ums Prinzip, bei mir funktioniert es, bei ihm nicht. Und ich möchte unbedingt wissen wieso das so ist. Es ist (mir) weniger wichtig dass es funktioniert, als vielmehr zu wissen wie und warum, es geht mir dabei einfach darum dass ich eine Problemstellung hab und diese gelöst sein will.

    Dass Port 20/21 geblockt sind, kann es nicht sein, denn über die ftp-Funktionen von PHP funktioniert es.
    Ob es vielleicht daran liegt, dass beim Kollegen der lokale Server auf nem Netzlaufwerk (ne Qnap NAS) liegt? Ne das kann ich mir nicht wirklich vorstellen, so viel anders sind die Begebenheiten was eine Verbindung zu nem FTP-Server betreffen ja sicherlich nicht.
    In der php.ini ist auch bei ihm allow_url_fopen auf ON. Das kann es also auch nicht sein...

    Ich geb erst Ruhe wenn ich weiß wieso das nicht funktioniert :D Es mag zwar keine Rolle spielen (das heißt das Fortschreiten meines Projektes wird dadurch nicht behindert) aber mir ist wichtig dass ich hinterher sagen kann "Des war's also, jetz versteh ich ^^".


    Link :thumbup:
    Hello World
    Also genau kann ich es dir auch nicht sagen, aber PHP is manchmal schon so eine merkwürdige Sache. Hatte manchma auch schon das ein Script auf dem einen server funktionierte und beim anderen Server mit der identischen Version nicht. Damals wars irgend ein Apache Modul was aufm anderen Server nicht installiert war.

    Und darauf tippe ich auch mal hier, laut der Fehlermeldung failed to open dir: not implemented is irgendwas nicht implementiert und ich würde mal darauf tippen, dass der opendir()-Funktion einfach die Implementation des FTP-Protokolls fehlt, welche bei dir wohl implementiert ist.
    Hi,

    naja, wenn ich stream_get_wrappers() ausführe bekomme ich ein Array, in dem FTP mit drin steht :-/ Darauf hab ich natürlich zuerst getippt, not implemented ist an sich ja ne klare Aussage. Weniger klar jedoch, wenn man nicht weiß was genau "not implemented" ist :S Bzw welches Modul fehlt..


    Link :thumbup:
    Hello World