Tom: Grade voll verpeilt -.-

Beitrag lesen

Hello,

$allowed_types = "(jpg|jpeg|gif|bmp|png)";

Dass Du eine unübersichtliche Formatierungsweise für Dein Script benutzt, habe Dir die Anderen schon gesagt. Ich bevorzuge daher (insbesondere für Programmieranfänger) denn Allman-Stil. Google bitte danach oder schau bei Wikipedia. Übrigens ist das fast der Stil, den auch die PHP-Programmierer vorschreiben für ihre Projekterweiterungen.

http://en.wikipedia.org/wiki/Indent_style

Dann solltest Du auf jeden Fall hier im Forum nach "category:PHP $_FILES MIME" suchen, um Dich über Threads zum Thema zu informieren, die mit Sicherheit zu tun haben. Es sind, sofern ich das überschauen kann, im Moment sogar noch zwei davon im aktiven Teil des Forums. Also bitte lesen!

Ein Absatz Wort noch zur Kontrolle, ob ein Upload stattgefunden hat.
Die erste relevante Zeile in einem solchen Upload-Script sollte immer lauten

if ( isset ( $_FILES[$uploadname]['error'] ))  ## Ein Uploadversuch hat stattgefunden
    {
       if ($_FILES[$uploadname]['error'] === 0)    ## genau eun File wurde ordnungsgemäß uploaded
       {
          meine_wunderbare_file_upload_funktion($target_path);
       }

}

Wenn man ein _oder_ mehr Files hochladen lassen will, dann wird das Ganze etwas komplexer, da PHP bei einem einzelnen Fall ein "Recors-Array" übergibt und bei mehreren Files ein "Spaltenarray".

$_FILES[$uploadname]['error'][0]
  $_FILES[$uploadname]['tmp_name'][0]
  $_FILES[$uploadname]['name'][0]
  $_FILES[$uploadname]['size'][0]
  $_FILES[$uploadname]['type'][0]

$_FILES[$uploadname]['error'][1]
  $_FILES[$uploadname]['tmp_name'][1]
  $_FILES[$uploadname]['name'][1]
  $_FILES[$uploadname]['size'][1]
  $_FILES[$uploadname]['type'][1]

odr anders herum geschrieben:

$_FILES[$uploadname]['error'][0]
  $_FILES[$uploadname]['error'][1]

$_FILES[$uploadname]['tmp_name'][0]
  $_FILES[$uploadname]['tmp_name'][1]

$_FILES[$uploadname]['name'][0]
  $_FILES[$uploadname]['name'][1]

$_FILES[$uploadname]['size'][0]
  $_FILES[$uploadname]['size'][1]

$_FILES[$uploadname]['type'][0]
  $_FILES[$uploadname]['type'][1]

Man muss also dann erst fragen, ob

if ( isset ( $_FILES[$uploadname]['error'] ))  ## Ein Uploadversuch hat stattgefunden
    {
       if ($_FILES[$uploadname]['error'] === 0)    ## genau eun File wurde ordnungsgemäß uploaded
       {

$errmsg[] = meine_wunderbare_file_upload_funktion($_FILES['tmp_name], $target_path); ## [1]

}
       if (is_array($_FILES[$uploadname]['error']))
       {
          foreach($_FILES[$uploadname]['error'] as $key => $error)
          {
             if ($error === 0)
             {
                 $errormsg[] = meine_wunderbare_file_upload_funktion($_FILES['tmp_name][$key], $target_path); ## [1]
             }
          }

}

}

[1] die Funktion musst Du Dir selber schreiben.
Sie könnte auch alle Parameter aus $_FILES übernehmen, also name, tmp_name, size, type, error ...

Viel Spaß beim Experimentieren.

Ein harzliches Glückauf

Tom vom Berg

http://bergpost.annerschbarrich.de
.

--
Nur selber lernen macht schlau