2017-03-06 6 views
-2

Ich schreibe PHP-Code in Netbeans. Das Programm generiert die richtige Ausgabe, aber die folgende Meldung wird im Browser generiert.Warum wird der folgende Fehler generiert?

Hinweis: Nicht definiert Index: Name in C: \ xampp \ htdocs \ PhpProject3 \ index.php on line 2

Hinweis: Nicht definiert Index: Name in C: \ xampp \ htdocs \ PhpProject3 \ index. PHP in Zeile 3

Hinweis: Nicht definiert Index: Name in C: \ xampp \ htdocs \ PhpProject3 \ index.php on line 4

Hinweis: Nicht definiert Index: Name in C: \ xampp \ htdocs \ PhpProject3 \ index.php on line 5

Hier ist mein Code:

 <?php 
     echo $name=$_FILES['name']['name'].'<br>'; 
     echo $size=$_FILES['name']['size'].'<br>'; 
     echo $type=$_FILES['name']['type'].'<br>'; 
     echo $tmp_name=$_FILES['name']['tmp_name']; 
     ?> 



     <form action="index.php" method="POST" enctype="multipart/form-data"> 
     <input type="file" name="name"><br/><br/> 
     <input type="submit" value="Submit"> 
     </form> 

Screen shot of the output

+0

Weil '$ _FILES' keinen' name' Index hat? Welchen Teil der Fehlermeldung verstehen Sie nicht? – Biffen

+1

Sie müssen überprüfen, ob das Formular gesendet wurde – hassan

+4

Mögliche Duplikate von [PHP: "Hinweis: Undefinierte Variable", "Hinweis: Undefinierter Index" und "Hinweis: Undefinierter Offset"] (http://stackoverflow.com/questions/ 4261133/php-notice-undefined-variable-notice-undefined-index-und-notice-undef) – hassan

Antwort

2

Sie erhalten diesen Fehler, weil beim Laden der Seite die Variablen $_POST nicht vorhanden sind. Daher müssen Sie zuerst prüfen, ob Postvariablen vorhanden sind.

<?php 

if (isset($_POST['submitBtn'])) { 

    if (isset($_FILES['name'])) { 

     echo $name = $_FILES['name']['name'] . '<br>'; 
     echo $size = $_FILES['name']['size'] . '<br>'; 
     echo $type = $_FILES['name']['type'] . '<br>'; 
     echo $tmp_name = $_FILES['name']['tmp_name']; 
    } 


} 

?> 



     <form action="index.php" method="POST" enctype="multipart/form-data"> 
     <input type="file" name="name"><br/><br/> 
     <input type="submit" value="Submit" name="submitBtn"> 
     </form> 
3

Sie benötigen eine IF-Anweisung hinzugefügt werden, da PHP auf die Variable $_FILES['name'] zugreifen will, sogar es ist nicht festgelegt.

Dann müssen Sie diesen Wert überprüfen, ob Sie mit einer POST-Anforderung sind (Benutzer das Formular abschickt) mit dem Code:

if($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['btnSubmit']) 
{ 
    // get if the user submits the file 
    if(isset($_FILES['name']) 
    { 
     echo $name=$_FILES['name']['name'].'<br>'; 
     echo $size=$_FILES['name']['size'].'<br>'; 
     echo $type=$_FILES['name']['type'].'<br>'; 
     echo $tmp_name=$_FILES['name']['tmp_name']; 
    } 
} 

Und Ihre Taste ersetzen:

<input type="submit" value="Submit" name="btnSubmit"> 
2

Try dies:

<?php 
    if(isset($_POST['btnSubmit']){ 
     echo $name=$_FILES['name']['name'].'<br>'; 
     echo $size=$_FILES['name']['size'].'<br>'; 
     echo $type=$_FILES['name']['type'].'<br>'; 
     echo $tmp_name=$_FILES['name']['tmp_name']; 
    } 
?> 



<form action="" method="POST" enctype="multipart/form-data"> 
    <input type="file" name="name"><br/><br/> 
    <input type="submit" value="Submit" name="btnSubmit"> 
</form> 
+0

yeh. Dein Code funktioniert. aber ich sehe das gleiche auf dem New Boston Tutorial "https://www.youtube.com/watch?v=PYSW-Xejn1s&list=PL442FA2C127377F07&index=87". Es erzeugt dort keine Notiz. –

+0

Was meinst du mit Hinweis? – Swellar

+0

Warnung für etwas .Ich glaube, –

0

Versuchen Sie, diese

<?php 
if(isset($_FILES['name']) && is_array($_FILES['name'])) 
{ 
    echo $name=$_FILES['name']['name'].'<br>'; 
    echo $size=$_FILES['name']['size'].'<br>'; 
    echo $type=$_FILES['name']['type'].'<br>'; 
    echo $tmp_name=$_FILES['name']['tmp_name']; 
} 
?> 



<form action="index.php" method="POST" enctype="multipart/form-data"> 
<input type="file" name="name"><br/><br/> 
<input type="submit" value="Submit"> 
</form> 
+0

Offensichtlich in einer Produktionsumgebung würden Sie Ihre PHP-Fehlerberichte anpassen, aber das war nicht die Frage. –

+0

Beantwortest du meinen obigen Kommentar? –

+0

Ja, ich habe lediglich erklärt, dass er gefragt hat, warum der folgende Fehler generiert wurde, und nicht, wie der Fehler vollständig unterdrückt werden soll. –

Verwandte Themen