Rolf B: for-Schleife

Beitrag lesen

Hallo Manu3l,

habe ich da irgendeinen Denkfehler?

Nein, sondern eine unvollständige Code-Änderung.

Du hat beim Erweitern von 1 auf N Dateien nicht überall [0] durch [$i] ersetzt.

Weitere Hinweise:

  • $zugelassenedateitypen ist in jedem Schleifendurchlauf gleich. Die Initialisierung dieser Variablen sollte vor der FOR-Schleife erfolgen

  • if ( $_FILES['file']['name'][0] <> '' ) - Wieso greifst Du hier wieder auf das $FILES Array zu? Warum nicht auf $filename?

  • dateiname_bereinigen - Leerzeichen und Umlaute sind gültige Zeichen in Dateinamen. Warum entfernen? Gefährlicher sind Zeichen wie /, \ oder :. Aber das mag sein wie es will, denn:

  • den vom User gelieferten Filename solltest Du auf KEINEN Fall in dein eigenes Filesystem lassen. Allein schon deshalb nicht, damit der User X nicht Dateien von User Y überschreiben kann. Lege die Datei unter einem selbstvergebenen Namen ab und speichere Dir irgendwo (in einer Datenbank zum Beispiel), dass User X die Datei Y hochgeladen hat, sie vom Mime-Typ foo/bar ist und sie im Upload-Bereich unter dem Namen "mklmtciohremctgk" liegt.

Ich hoffe übrigens, dass Du einen Virenscanner über das Upload-Gut laufen lässt. Wenn Du ZIP-Archive annimmst, kann darin alles mögliche Ungeziefer stecken, und "application/octet-stream" ist noch schlimmer.

Rolf

--
sumpsi - posui - clusi