Seite 1 von 2

Modul: FTP Upload mit Benachrichtigung

Verfasst: Do 2. Mär 2006, 21:27
von schlaucher
Hi,

mit diesem Modul ist es möglich, Dateien über die FTP Funktion von PHP auf einen FTP Server zu übertragen. Der Anwender kann zusätzlich noch seinen Namen und eine kurze Beschreibung zur Datei angeben. Nach erfolgreicher Übertragung, kann automatisch eine Benachrichtigungs E-Mail verschickt werden.
Bei der FTP Übertragung benenne ich die Dateien noch um. Es wird das UNIX Datum dem Dateinamen vorangestellt, um ein überschreiben bei gleichen Dateinamen zu verhindern. z.B. aus test.txt wird dann 1141317557_test.txt

Folgende Parameter sind über die Vorkonfiguration einstellbar:
  • FTP Server
    FTP Verzeichnis
    FTP User
    Passwort
    Übertragunsmodus
    maximale Dateigröße
    E-Mail Benachrichtigung
Bei der maximalen Dateigröße sind natürlich die PHP Vorgaben zu beachten:
  • memory_limit
    post_max_size
    upload_max_filesize
Diese müssen ggf. über die php.ini oder .htaccess angepasst werden.

Der kleinste Wert bestimmt die maximale Dateigröße, aber man sollte folgende Regel beachten:
memory_limit muss > upload_max_filesize sein,
upload_max_filesize muss >= post_max_size sein,
dann ist post_max_size = maximale Dateigröße


Ich weiss nicht, ob auch der Wert max_execution_time noch eine Rolle spielt, aber bei großen Dateien und einer schmalen Anbindung muss man da vieleicht auch noch was tun. Habe das aber noch nicht getestet.

Neue Version 1.1
  • - Check, ob User im Frontend angemeldet sein muss
    - Liste von akzeptierten Dateitypen
So, und nun noch das Modul: FTP_Upload.xml

Gruß
schlaucher

Verfasst: Mo 6. Mär 2006, 22:45
von Beleuchtfix
pass nur auf, dass du keine ausführbare Dateien auf den Server bekommst, die Rumänen freuen sich sonst riesig.

Bis du deine Email gelesen hast, sind schon 100000 Spam Mails verschickt.

Gruß
Florian

Verfasst: Di 7. Mär 2006, 09:05
von schlaucher
Nun, das ist ja bei jeden Upload die Gefahr! Aber man kann ja da schon ein wenig vorarbeiten:
  • - Beim FTP Modul ist es ja auch so, dass das FTP Upload Verzeichnis unabhänig von der Contenido Upload Verzeichnisstruktur ist. Der FTP Server kann ja wo ganz anders sein.
    - Ein User, der eine Datei uploadet kennt die Zieladresse ja gar nicht! Er kann nur das Formular benutzen.
    - Selbst wenn einer die FTP Adresse kennt ist der FTP Server so konfiguriert, dass man zwar eine Datei uploaden darf, anschließend ist sie aber werder sichtbar noch ausführbar.
    - Die Uploadseite erhalten nur registrierte Frontend User.
Waren das deine Bedenken, oder ist der Modulcode sicherheitstechnisch bedenklich?

Gruß
schlaucher

Verfasst: Di 7. Mär 2006, 09:13
von Beleuchtfix
Genau die Punkte waren es, da muss sich aber der Benutzer darüber im klaren sein :!: So mal eben die Möglichkeit nutzen seine Usern ein paar Bilder in die Galerie einzustellen zu lassen ....

Wie wäre es, wenn du im Modul noch mögliche Datei-Endungen abfragst, vielleicht verhindert das beim DAU etwas.

Gruß
Florian

Verfasst: Di 7. Mär 2006, 09:38
von schlaucher
o.k.

werde das noch ins Modul mit aufnehmen.

Gruß
schlaucher

Problem beim konfigurieren?

Verfasst: Do 20. Sep 2007, 12:50
von macbill
Also Ich habe das Modul installiert. Brauche es für unsere Firmenseite (Druckerei), damit uns Kunden Daten auf unseren FTP Server schicken können. Wenn ich nun eine PDF Datei auswähle und sie hochladen will, erhalte ich folgende Fehlermeldung. Diese steht auch im errorlog.

Code: Alles auswählen

Fatal error: Call to undefined function ftp_connect() in .../web/cms/front_content.php(771) : eval()'d code on line 210
:?:

Re: Problem beim konfigurieren?

Verfasst: Do 20. Sep 2007, 13:14
von schlaucher
macbill hat geschrieben:Also Ich habe das Modul installiert. Brauche es für unsere Firmenseite (Druckerei), damit uns Kunden Daten auf unseren FTP Server schicken können. Wenn ich nun eine PDF Datei auswähle und sie hochladen will, erhalte ich folgende Fehlermeldung. Diese steht auch im errorlog.

Code: Alles auswählen

Fatal error: Call to undefined function ftp_connect() in .../web/cms/front_content.php(771) : eval()'d code on line 210
:?:
undefined function: die Funktion gibt es nicht.
php_ftp ist eine Erweiterung im PHP die nur bei der Windows-Version von Hause aus an Bord ist. Bei allen anderen muss diese Erweiterung bei der Installation von PHP mit angegeben, oder nachinstalliert werden.

http://php.net/ftp
In order to use FTP functions with your PHP configuration, you should add the --enable-ftp option when installing PHP 4 or --with-ftp when using PHP 3.

The windows version of PHP has built in support for this extension. You do not need to load any additional extension in order to use these functions.
Ist das Modul unter PHP nicht geladen, gibt es die Funktionen nicht.
Was sagt denn Dein phpinfo()

Gruß
schlaucher

PHPINFO

Verfasst: Do 20. Sep 2007, 13:48
von macbill
Habe ich gerade mal erstellt. Also ich werde da nicht schlau draus. Vielleicht könntest Du mal gucken?

http://www.druckpunkt.de/phpinfo.php

Re: PHPINFO

Verfasst: Do 20. Sep 2007, 13:53
von schlaucher
macbill hat geschrieben:Habe ich gerade mal erstellt. Also ich werde da nicht schlau draus. Vielleicht könntest Du mal gucken?

http://www.druckpunkt.de/phpinfo.php
also in Deinen "Configure Commands" finde ich ein '--disable-ftp',
da solltest Du weitersuchen.

Gruß
schlaucher

Verfasst: Do 20. Sep 2007, 13:53
von calvini
phpinfo hat geschrieben:Configure Command: ... '--disable-ftp'
Also vermute ich mal, dass FTP nicht aktiviert ist.

--disable-ftp

Verfasst: Do 20. Sep 2007, 13:59
von macbill
Dann muss ich wohl unseren Provider anschreiben? ........ und der ist so stur. Ne andere Möglichkeit gibts da wohl nicht oder? Der kommt eigentlich selten aus den Puschen. :(

Provider

Verfasst: Fr 21. Sep 2007, 06:38
von macbill
Sooo, mein Provider meinte, dafür müsste er php "neu bauen" und die konfig würde dann für alle Kunden gelten. Stimmt das oder erzählt der mir jetzt was vom Pferd? :evil:

Re: Provider

Verfasst: Fr 21. Sep 2007, 08:34
von schlaucher
macbill hat geschrieben:Sooo, mein Provider meinte, dafür müsste er php "neu bauen" und die konfig würde dann für alle Kunden gelten. Stimmt das oder erzählt der mir jetzt was vom Pferd? :evil:
Das mit dem PHP neue bauen stimmt, dass die Änderungen für alle Kunden auf dem WEB-Server gelten hängt davon ab, wie die Kunden auf dem WEB-Server angelegt sind und verwaltet werden. Das macht leider jeder Provider anders :?

Viele Provider bieten diese PHP Funktion, dadurch wird eine System auch nicht unsicherer. Lasse mich in diesem Punkt aber auch gerne eines Besseren belehren :wink:

Gruß
schlaucher

:(

Verfasst: Fr 21. Sep 2007, 12:10
von macbill
Tja Schade Pomade. Bleibe aber weiter dran. werde dann hier berichten, was es ergeben hat.

Re: :(

Verfasst: Mi 14. Nov 2007, 09:46
von derSteffen
Hallo,

ich wollte ebenfalls gerne das Modul für einen internen Bereich nutzen aber leider wird mir beim Upload folgendes ausgegeb;

Code: Alles auswählen

Warning: ftp_connect() [function.ftp-connect]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /www/htdocs/xxxxx/cms/front_content.php(926) : eval()'d code on line 1849
Dateityp o.k.

Warning: ftp_login() expects parameter 1 to be resource, boolean given in /www/htdocs/xxxxx/cms/front_content.php(926) : eval()'d code on line 1868
Es konnte keine Verbindung zum FTP Server hergestellt werden. Bitte versuchen Sie es später noch einmal!

Warning: ftp_quit() expects parameter 1 to be resource, boolean given in /www/htdocs/xxxxx/cms/front_content.php(926) : eval()'d code on line 1812
Laut meiner infophp habe ich --enable-ftp!

Zur Zeit teste ich das mit einer 4.6.8 MR CMS-Version (auch be deaktiviertem ModRewrite) erscheint diese Fehlermeldung.

Woran kann das liegen? Müssen noch woanders Daten angepasst werden?

Danke