MySql if(empty($_FILES['files'])){ ...}

ah ... jetzt seh ichs. etwas unübersichtlich die ganzen if{}

nur damit ichs verstehe. warum werden alle Variablen mit $titel = $_POST['titel']; übergeben und die $files = $_FILES['files']; ?
 
naja ... ist ja nicht ersichtlich wie, was und von wo es übergeben wird

edit: ich steh heut etwas neben mir wies scheint! habs gefunden, am ende
 
Zuletzt bearbeitet:
PHP:
foreach($_FILES['files']['tmp_name'] as $key => $error ){
Scheint mir komisch zu sein. Gemäss PHP-Doku sollten $_FILES['files']['tmp_name'] ein Array sein und $_FILES['userfile'] ebenfalls
Ich würde mal $_FILES mit var_dump() ausgeben.

PHP:
    foreach($_FILES['files']['tmp_name'] as $key => $error ){
        if ($error != UPLOAD_ERR_OK) {

//sollte eher so aussehen
    foreach($_FILES['files']['tmp_name'] as $key => $file_tmp ){
        if($_FILES['files']['error'][$key] != UPLOAD_ERR_OK){
 
Wenn ich keine Bilder auswähle erzeugt var_dump() folgendes:

Code:
array(5) { ["name"]=> array(1) { [0]=> string(0) "" } ["type"]=> array(1) { [0]=> string(0) "" }
 ["tmp_name"]=> array(1) { [0]=> string(0) "" } ["error"]=> array(1) { [0]=> int(4) } 
["size"]=> array(1) { [0]=> int(0) } }
 
Code:
array(5) {
    ["name"]=> array(1) {
        [0]=> string(0) ""
    }
    ["type"]=> array(1) {
         [0]=> string(0) ""
    }
     ["tmp_name"]=> array(1) {
         [0]=> string(0) ""
     }
     ["error"]=> array(1) {
          [0]=> int(4)
     }
     ["size"]=> array(1) {
         [0]=> int(0)
     }
}
Ja, empty ist das nicht.
Also prüf doch auf
empty($_FILES['files']['tmp_name'][0])

Nachtrag:
Der Error ist 4. Das ist UPLOAD_ERR_NO_FILE. Darauf kann man auch prüfen
$_FILES['files']['ERROR'][0] == UPLOAD_ERR_NO_FILE
 
Übrigens gibt es auch für PHP Debugger mit Breakpoints, sprich man muss nicht tausend Mal durch den Code gehen und mit prints sich ansehen, was passiert!
 
Zurück