未定义的索引错误PHP

LPo*_*let 19 php forms post undefined

我是PHP的新手,我收到了这个错误:

注意:未定义的索引:第32行的/var/www/test/modifyform.php中的productid

注意:未定义的索引:第33行的/var/www/test/modifyform.php中的名称

注意:未定义的索引:第34行/var/www/test/modifyform.php中的价格

注意:未定义的索引:第35行的/var/www/test/modifyform.php中的描述

我在网上找不到任何解决方案,所以也许有人可以帮助我.

这是代码:

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

}
Run Code Online (Sandbox Code Playgroud)

之后我(或者至少我正在尝试)做的是更新MySQL中的表.我真的无法理解为什么$rowID定义而其他变量不是.

感谢您抽出宝贵时间回答我.干杯!

Ada*_*dam 37

尝试:

<?php

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

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

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

?>
Run Code Online (Sandbox Code Playgroud)

  • 对于最近到达这里的人,PHP 7 带来了空合并运算符,因此可以简化示例:`$name = $_POST['name'] ?? '任何默认值,但可能为空';` (5认同)

Rob*_*son 6

显然你的html表单中缺少索引'productid'.首先检查你的html输入.例如,<input type="text" name="productid" value=""> 但这将处理PHP正在引发的当前错误.

  $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'] : '';
Run Code Online (Sandbox Code Playgroud)