Hallo.
Auch 'size' ist ohne Funktion ?
if($_FILES['upfile']['size']>500000) /*Größe anpassen*/ {
{$fehler.="<center><br>Die Datei ist leider zu groß!;";}
Du solltest deinen leicht chaotischen Programmierstil etwas auflockern, ich finde ihn reichlich unübersichtlich. Als Beispiel für ein bewährtes Format: http://httpd.apache.org/dev/styleguide.html.
Ob es nun tatsächlich daran liegt, dass du in diesem zusammengequetschten Wust mit den Klammern durcheinander gekommen bist, oder dies ein Zitierfehler ist, musst du selbst wissen. Die if-Bedingung selbst sieht jedenfalls in Ordnung aus; bei solchen unerklärlichen Verzweigungen ist es aber immer eine sehr große Hilfe, sich direkt vor der fraglichen Bedingung die beteiligten Variablen ausgeben zu lassen:
var_dump($_FILES['upfile']['size']);
if ($_FILES['upfile']['size'] > 500000) {
blafasel;
Warum werden auch alle anderen Dateitypen geladen (txt, pdf, etc.)?
Schau dir deine Bedingung an (ich ziehe das mal etwas auseinander):
if (! (
($_FILES['upfile']['type'] == 'image/jpeg')
&& ($_FILES['upfile']['type'] == 'image/gif')
&& ($_FILES['upfile']['type'] == 'image/png')
)
)
Fällt dir an der inneren Klammer etwas auf? Kann das Feld 'type' "image/jpeg und image/gif und image/png" sein?