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