web-dev-qa-db-fra.com

Erreur d'index non définie PHP

Je suis nouveau dans PHP et j'obtiens cette erreur:

Avis: Index non défini: productid dans /var/www/test/modifyform.php sur ligne 32

Avis: Index non défini: nom dans /var/www/test/modifyform.php en ligne 33

Avis: Indice non défini: prix dans /var/www/test/modifyform.php en ligne 34

Avis: Index non défini: description dans /var/www/test/modifyform.php à la ligne 35

Je n'ai trouvé aucune solution en ligne, alors peut-être que quelqu'un pourra m'aider.

Voici le 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'];

}

Ce que je fais ensuite (ou du moins que j'essaie) est de mettre à jour une table dans MySQL . Je ne comprends vraiment pas pourquoi $rowID est défini alors que les autres variables ne le sont pas.

Merci d'avoir pris le temps de me répondre .

17
LPoblet

Essayer:

<?php

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

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

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

?>
35
Adam

Apparemment, l'index 'productid' est absent de votre formulaire html . Inspectez d'abord vos entrées html. Exemple: <input type="text" name="productid" value=""> Mais cela gérera l’erreur actuelle PHP qui se déclenche .

  $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

Cela se produit parce que votre code PHP est en cours d'exécution avant la publication du formulaire. 

Pour éviter cela, placez votre code PHP dans l'instruction if suivante et il gérera le reste sans avoir à définir d'instructions if pour chaque variable

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

ESSAYER

<?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

Hé, c’est parce que nous essayons d’afficher la valeur avant de l’affecter Il suffit de remplir les valeurs et de soumettre le formulaire. Le résultat affiché est correct des erreurs

0
rohit sonawane

Il devrait y avoir un problème lorsque vous générez le <form>. Je parie que les variables $name, $price sont NULL ou une chaîne vide lorsque vous echo les dans le value du champ <input>. Les champs de saisie vides ne sont pas envoyés par le navigateur. Par conséquent, $_POST n'aura pas ses clés.

Quoi qu'il en soit, vous pouvez vérifier cela avec isset() .

Testez les variables avec les éléments suivants:

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

Vous feriez mieux de le régler sur NULL, car

La valeur NULL représente une variable sans valeur.

0
Dyin

Si vous utilisez le serveur Wamp, je vous recommande d'utiliser xampp server . You. Je reçois cette erreur en moins d'une minute mais j'ai résolu le problème en utilisant la fonction (isset) et je n'obtiens aucune erreur. et ensuite je supprime la fonction (isset) et je ne vois aucune erreur.

en passant, j'utilise xampp server

0