Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.php > #4550

Re: php Upload-Skript

From k@rl.pflaesterer.de (Karl Pflästerer)
Newsgroups de.comp.lang.php
Subject Re: php Upload-Skript
Date 2019-11-16 16:36 +0100
Message-ID <m136enkf4h.fsf@mbp.pflaesterer.de> (permalink)
References <qqp1bv$1kf$1@solani.org>

Show all headers | View raw


Detlef Paschke <schabau@t-online.de> writes:

> Hallo an alle,

[...]

> Nun wollte ich gern noch auf die Dateiendung überprüfen und habe mir
> diese Zeilen gesucht.
> Im Header steht:
> # Geben Sie hier die erlaubten Dateitypen an ('zip', 'gzip').
> $extension = strtolower(pathinfo($_FILES['datei']['name'],
> PATHINFO_EXTENSION));
> $allowed_extensions = array('png', 'jpg', 'jpeg', 'gif', 'pdf');
>
> Und dann unten im Formular:
> if(!in_array($extension, $allowed_extensions)) {
>    echo "Ungültige Dateiendung";
>    exit;
>
> Das funktioniert, nur wenn ich die Upload-Seite betrete, sprich keine
> Datei ausgewählt habe erscheint diese Meldung wenn ich in php
> eingestellt habe, dass Fehlermeldungen angezeigt werden sollen:
>
> Notice: Undefined index: datei in
> /var/www/htdocs/schabau.goip.de/upload/upload.php on line 13.
> Zeile 13 ist dabei die Zeile die mit "$extension = strtolower" beginnt.

Da du noch nichts hocgealden hast, ist $_FILES leer. Daher die Notice

Lasse den ganzen Block nur ausführen, wenn etwas hochgeladen wurde.

Also zB

if (!empty($_FILES['datei'])) {
 ... dein Code
}


>
> Tja und die zweite Sache wird sicher auch nur ein Syntaxproblem sein.
> Auf der Webseite wird derzeit automatisch angezeigt, wie groß eine Datei
> sein darf.
>
> $int_max_filesize = 524288000;
>
> im Header und
>
> <p align="center"><u>Maximale Dateigröße <?php echo round
> ($int_max_filesize/1024/1024, 2)?></u></p>
>
> dann im html-Bereich.
>
> Nun hätte ich gern noch eine Zeile direkt darunter, in der die Erlaubten
> Dateiendungen aus
>
> $allowed_extensions = Array('png', 'jpg', 'jpeg', 'gif', 'pdf');
>
> aufgeführt werden. Ein schlichtes echo ($allowed_extensions) geht
> zumindest nicht aber sicher ist es auch nur wieder ein Syntax-Problem.


Da $allowed_extensions ein Array ist, musst du daraus eine Zeichenkette
machen, wenn du es ausgeben willst.

Zum Beispiel

echo htmlspecialchars(implode(',', $allowed_extensions));


Wenn du nicht weisst, was alles in $allowed_extensions stehen kann,
sichert htmlspecialchars, dass du gültiges html hast

  KP

Back to de.comp.lang.php | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

php Upload-Skript Detlef Paschke <schabau@t-online.de> - 2019-11-16 15:33 +0100
  Re: php Upload-Skript k@rl.pflaesterer.de (Karl Pflästerer) - 2019-11-16 16:36 +0100
    Re: php Upload-Skript Detlef Paschke <schabau@t-online.de> - 2019-11-17 11:30 +0100
      Re: php Upload-Skript Detlef Paschke <schabau@t-online.de> - 2019-11-17 11:45 +0100
      Re: php Upload-Skript Detlef Paschke <schabau@t-online.de> - 2019-11-17 13:31 +0100
      Re: php Upload-Skript Jan Novak <repcom@gmail.com> - 2019-11-18 15:58 +0100
        Re: php Upload-Skript Detlef Paschke <schabau@t-online.de> - 2019-11-19 14:54 +0100

csiph-web