wake-up-neo.net

Undefinierter Indexfehler PHP

Ich bin neu in PHP und erhalte folgende Fehlermeldung:

Hinweis: Nicht definierter Index: Produkt-ID in /var/www/test/modifyform.php auf Zeile 32

Hinweis: Nicht definierter Index: Name in /var/www/test/modifyform.php in Zeile 33

Hinweis: Nicht definierter Index: Preis in /var/www/test/modifyform.php online 34

Hinweis: Nicht definierter Index: Beschreibung in /var/www/test/modifyform.php in Zeile 35

Ich konnte keine Lösung online finden, also kann mir vielleicht jemand helfen.

Hier ist der Code:

<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
   <input type="hidden" name="rowID" value="<?php echo $rowID;?>">

   <p>
      Product ID:<br />
      <input type="text" name="productid" size="8" maxlength="8" value="<?php echo $productid;?>" />
   </p>

   <p>
      Name:<br />
      <input type="text" name="name" size="25" maxlength="25" value="<?php echo $name;?>" />
   </p>

   <p>
      Price:<br />
      <input type="text" name="price" size="6" maxlength="6" value="<?php echo $price;?>" />
   </p>

   <p>
      Description:<br />
      <textarea name="description" rows="5" cols="30">
      <?php echo $description;?></textarea>
   </p>

   <p>
      <input type="submit" name="submit" value="Submit!" />
   </p>
   </form>
   <?php
   if (isset($_POST['submit'])) {
      $rowID = $_POST['rowID'];
      $productid = $_POST['productid']; //this is line 32 and so on...
      $name = $_POST['name'];
      $price = $_POST['price'];
      $description = $_POST['description'];

}

Was ich danach mache (oder zumindest versuche ich) ist, eine Tabelle in MySQL zu aktualisieren. Ich kann wirklich nicht verstehen, warum $rowID definiert ist, während die anderen Variablen dies nicht sind.

Vielen Dank, dass Sie sich Zeit genommen haben, um mir zu antworten.

17
LPoblet

Versuchen:

<?php

if (isset($_POST['name'])) {
    $name = $_POST['name'];
}

if (isset($_POST['price'])) {
    $price = $_POST['price'];
}

if (isset($_POST['description'])) {
    $description = $_POST['description'];
}

?>
35
Adam

Anscheinend fehlt der Index 'productid' in Ihrem HTML-Formular Überprüfen Sie zuerst Ihre HTML-Eingaben. zB <input type="text" name="productid" value=""> Dies behandelt jedoch den aktuellen Fehler PHP, der .............

  $rowID = isset($_POST['rowID']) ? $_POST['rowID'] : '';
  $productid = isset($_POST['productid']) ? $_POST['productid'] : '';
  $name = isset($_POST['name']) ? $_POST['name'] : '';
  $price = isset($_POST['price']) ? $_POST['price'] : '';
  $description = isset($_POST['description']) ? $_POST['description'] : '';
6
Robert Wilson

Dies geschieht, weil Ihr PHP -Code ausgeführt wird, bevor das Formular veröffentlicht wird. 

Um dies zu vermeiden, wickeln Sie Ihren PHP -Code in die folgende if-Anweisung ein, und der Rest erledigt den Rest. Für jede Variable müssen keine if-Anweisungen gesetzt werden

       if(isset($_POST) && array_key_exists('name_of_your_submit_input',$_POST))
        {
             //process PHP Code
        }
        else
        {
             //do nothing
         }
2
Akshat Maltare

VERSUCHEN

<?php

  $rowID=$productid=$name=$price=$description="";  

   if (isset($_POST['submit'])) {
      $rowID = $_POST['rowID'];
      $productid = $_POST['productid']; //this is line 32 and so on...
      $name = $_POST['name'];
      $price = $_POST['price'];
      $description = $_POST['description'];

}
2
sumish1985

Hey, dies geschieht, weil ur versucht, den Wert vor dem Zuweisen des Werts anzuzeigen Sie müssen nur die Werte eingeben und das Formular absenden. Die Ausgabe wird korrekt ausgegeben. __ Irgendwelche Fehler

0
rohit sonawane

Es sollte das Problem geben, wenn Sie den <form> generieren. Ich wette, die Variablen $name, $price sind NULL oder eine leere Zeichenfolge, wenn Sie echo in das value -Feld des <input> -Felds eingeben. Leere Eingabefelder werden vom Browser nicht gesendet, daher haben $_POST keine Schlüssel.

Wie auch immer, Sie können das mit isset() überprüfen.

Testvariablen mit folgenden Eigenschaften:

if(isset($_POST['key'])) ? $variable=$_POST['key'] : $variable=NULL

Setzen Sie es besser auf NULL, weil

NULL-Wert steht für eine Variable ohne Wert.

0
Dyin

Wenn Sie einen Wamp-Server verwenden, empfehle ich Ihnen, den Xampp-Server zu verwenden. Ich bekomme diesen Fehler in weniger als einer Minute, aber ich habe dies mit der Funktion (isset) behoben. und ich bekomme keine fehler. und danach entferne ich (isset) -Funktion und ich sehe keinen Fehler.

übrigens verwende ich xampp server