PHP Notice: Undefined index

bpblub

Cadet 4th Year
Registriert
Mai 2008
Beiträge
124
Hallo,

ich hänge schon eine ganze Weile dran versteh folgende Fehlermeldung nicht:

Notice: Undefined index: uploadedfile in E:\Programme\xampp\htdocs\upload.php on line 1
Notice: Undefined index: uploadedfile in E:\Programme\xampp\htdocs\upload.php on line 3

index.php
PHP:
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000000" />
Upload your file: <input name="uploadedfile" type="file" />
<input type="submit" value="Upload" />
</form>

upload.php
PHP:
$target_path = $target_path . basename($_FILES['uploadedfile']['name']); 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    
    $link = $uri."".$url."downloads.php?link=".$zufall;
    $MySql->mysqlInsertName($zufall, $link, $_FILES['uploadedfile']['name'], getenv('REMOTE_ADDR'), 0);
    
    echo "You uploaded: <b> ". basename( $_FILES['uploadedfile']['name']) ."</b><br>";
    echo "Your Link: <b>".$link."</b>";
} else{
    echo "Beim Hochladen ist ein Fehler aufgetreten";
}

Die Fehlermeldung treten in den 2 Zweilen der upload.php auf:
PHP:
$target_path = $target_path . basename($_FILES['uploadedfile']['name']); 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {

Soo, das eigentlich kuriose Verhalten, was ich nicht verstehe: Einige Dateien können hochgeladen werden und andere wiederum nicht. Meine Theorien die ich erfolglos getestet habe sind:

Dateigröße - Die Dateigröße könnte der Fehler sein, da ich bis jetzt keine Dateien > 7MB hochladen konnte.
Dateiformat - Die verschiedenen Formate konnte ich ausschließen.
Dateibenennung - Sonderzeichen konnte ich ausschließen.

In Google gibt es zwar die Fehlermeldung, jedoch wurden die einzelnen Zeilen falsch benannt, was bei mir hoffentlich nicht der Fall ist.
Ich habe hier auf mein Desktop (W7 64Bit) XAMPP laufen.

Ich hoffe ich habe nichts wesentliches vergessen ... Danke schon mal für eure Mühe und Hilfe :)


Liebe Grüße,
blub
 
Zuletzt bearbeitet:
undefined index sagt ja das der schlüssel nicht existiert in dem array.

kannst du am besten mal oben am anfang folgendes machen

echo "<pre>".print_r($_FILES,true)."</pre>";

Der Array sollte dann leer sein wenn das auftritt. Also das ist zur Ausgabe eines ein- oder mehrdimensionalen Arrays.

Vielleicht bei leeren Dateien? Upload-Fehlern?
 
In der php.ini ist der Defaultwert für Uploads max. 8MB.

Die Notice Meldung weist darauf hin, dass es den entsprechenden Key im Array nicht gibt. Das ist genau dann der Fall, wenn die Datei nicht hochgeladen werden konnte (Dann sind die Unterschlüssel 'name, 'tmp_name' etc. auch nicht vorhanden). Vielleicht vorher mit isset() überprüfen?
 
undefined index sagt ja das der schlüssel nicht existiert in dem array.

kannst du am besten mal oben am anfang folgendes machen

echo "<pre>".print_r($_FILES,true)."</pre>";

Der Array sollte dann leer sein wenn das auftritt. Also das ist zur Ausgabe eines ein- oder mehrdimensionalen Arrays.

Vielleicht bei leeren Dateien? Upload-Fehlern?

Ich bekomme ein leeres Array angezeigt, obwohl ich keine leeren Dateien hochlade. Gut das habe ich mir aber schon vorher gedacht, aber was ist die Lösung?

In der php.ini ist der Defaultwert für Uploads max. 8MB.

Die Notice Meldung weist darauf hin, dass es den entsprechenden Key im Array nicht gibt. Das ist genau dann der Fall, wenn die Datei nicht hochgeladen werden konnte (Dann sind die Unterschlüssel 'name, 'tmp_name' etc. auch nicht vorhanden). Vielleicht vorher mit isset() überprüfen?

Ich hab in der php.ini eben mit der Variable "upload_max_filesize" rumgespielt. Sie war auf 128M eingestellt und ich habe sie einmal ausgeklammert und einmal den Wert auf 999999 gesetzt, erzielte leider beides kein neues Ergebnis.

Liebe Grüße,
blub
 
Umklammer es mal mit in der upload.php

if(isset($_FILES['uploadedfile']))
{
}

Ich würde grundsätzlich überprüfen, ob ein Formular abgeschickt wurde:

<input type="submit" value="Upload" /> <= einen namen geben

und in upload.php mit if(isset($_POST['meinsubmitbutton']))
 
Umklammer es mal mit in der upload.php

if(isset($_FILES['uploadedfile']))
{
}

Ich würde grundsätzlich überprüfen, ob ein Formular abgeschickt wurde:

<input type="submit" value="Upload" /> <= einen namen geben

und in upload.php mit if(isset($_POST['meinsubmitbutton']))

Danke, habe ich eingebaut. Mittlerweile hat sich anscheinend mein Fehler geändert, ich schwöre gestern hat er noch manche Dateien hochgeladen, aber jetzt passiert nichts mehr und er springt in den else-Teil. Aber ich habe den Tipp von chriz0101 noch zufällg implementiert gehabt, der jetzt folgendes ausgibt:

PHP:
Array
(
    [uploadedfile] => Array
        (
            [name] => VIDEO0039.3gp
            [type] => 
            [tmp_name] => 
            [error] => 2
            [size] => 0
        )
)

Ich habe die php.ini wieder in ihren Standardzustand zurückgesetzt und neugestartet. Jetzt bin ich aber vollkommen verwirrt. xD

Liebe Grüße,
blub
Ergänzung ()

Ich hab die Lösung durch einem Kumpel :)

Unzwar gibt es mehrere Uploadeinstellungen und ich habe die Falsche editiert. Einstellungen

Um nochmal auf mein letzten Post zurück zu kommen. Ich habe einfach folgende Zeile gelöscht:
PHP:
<input type="hidden" name="MAX_FILE_SIZE" value="1000000000" />

Danke für eure Hilfe :)

Liebe Grüße,
blub
 
Zuletzt bearbeitet:

Ähnliche Themen

M
Antworten
6
Aufrufe
2.283
mustermen
M
U
Antworten
16
Aufrufe
3.114
U
Zurück
Oben