Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 未定义的索引错误_Php_Forms_Post_Undefined - Fatal编程技术网

Php 未定义的索引错误

Php 未定义的索引错误,php,forms,post,undefined,Php,Forms,Post,Undefined,我是PHP新手,遇到以下错误: 注意:未定义的索引:productid在/var/www/test/modifyform.php上 第32行 注意:未定义的索引:name位于/var/www/test/modifyform.php的第行 三十三 注意:未定义索引:price in/var/www/test/modifyform.php在线 三十四 注意:未定义索引:在/var/www/test/modifyform.php中的描述 第35行 我在网上找不到任何解决方案,所以也许有人可以帮我 代码

我是PHP新手,遇到以下错误:

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

注意:未定义的索引:name位于/var/www/test/modifyform.php的第行 三十三

注意:未定义索引:price in/var/www/test/modifyform.php在线 三十四

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

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

代码如下:

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

}
试试:


当您生成
时,应该存在问题。我打赌变量
$name
$price
NULL
或空字符串,当
将它们回送到
字段的
值中时。浏览器不会发送空输入字段,因此
$\u POST
将不会有其键

不管怎么说,你可以和我核实一下

使用以下各项测试变量:

if(设置($\u POST['key'])$variable=$\u POST['key']:$variable=NULL

您最好将其设置为
NULL
,因为

NULL值表示没有值的变量


显然,html表单中缺少索引“productid”。 首先检查html输入。例如
但这将处理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'] : '';

嘿,发生这种情况是因为你试图在赋值之前显示值 只需填写值并提交表单,它将显示正确的输出 或者你可以在表单标签下面写你的php代码
它将在没有任何错误的情况下运行

此错误在方法属性(有效传递方法)的某个时间发生 错误选项: method=“get”但由$Fname=$\u POST[“name”]调用; 或

       method="post" but  called by  $Fname = $_GET["name"];


更多信息请访问

要删除此错误,在html表单中,您应该在
enctype
中执行以下操作:

<form  enctype="multipart/form-data">

以下是导致该错误的原因,即如果您从enctype中的表单数据开始,那么您应该从multipart开始:

<form enctype="form-data/multipart">

试试看


如果您使用的是wamp服务器,那么我建议您使用xampp服务器。
你。我在不到一分钟的时间内得到了这个错误,但我通过使用(isset)函数解决了这个问题。我没有错。
然后我删除了(isset)函数,我没有看到任何错误


顺便说一下,我正在使用xampp服务器,这是因为您的PHP代码在表单发布之前就被执行了

为了避免这种情况,将PHP代码封装在下面的if语句中,它将处理其余的代码,而无需为每个变量设置if语句

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

您是否有多个
标记?打印整个$\u POST数组,查看索引和值,然后查看您得到的
var\u dump($\u POST)@Mian_Khurram_Ijaz提交时,输出仅显示rowID变量。数组([rowID]=>Oranges[submit]=>submit!)@CodeCaster No是唯一的表单。变量不是empy。所有输入文本显示从数据库检索的数据。我试图做的是修改数据并用新值更新db(当然是在解决这个问题之后,否则db会更新并删除行,因为在按下“提交”之后变量中没有值。正是我在寻找的!对于最近来到这里的人来说,PHP7带来了null coalesce操作符,因此可以简化示例:
$name=$\u POST['name']?“任何默认值,但可能为null”;
oooh-请用英语回答;-)这是Akshat Maltare给出的非常符合逻辑的答案。我在一个完全不同的表格上有一个类似的问题,我使用了这篇文章,表格工作得非常完美。谢谢你,阿克沙。甚至在我在php表单上尝试它之前,我就觉得它是合乎逻辑的,是的,它很好。我指的是表单发布之前执行的PHP代码。
       if(isset($_POST) && array_key_exists('name_of_your_submit_input',$_POST))
        {
             //process PHP Code
        }
        else
        {
             //do nothing
         }