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 .
Essayer:
<?php
if (isset($_POST['name'])) {
$name = $_POST['name'];
}
if (isset($_POST['price'])) {
$price = $_POST['price'];
}
if (isset($_POST['description'])) {
$description = $_POST['description'];
}
?>
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'] : '';
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
}
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'];
}
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
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.
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