26

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

}

その後私がすること(または少なくとも私が試みていること)は、MySQLのテーブルを更新することです。$rowID他の変数が定義されていないのに、なぜ定義されているのか本当に理解できません。

お時間を割いていただきありがとうございます。乾杯!

4

9 に答える 9

50

試す:

<?php

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

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

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

?>
于 2012-05-16T07:06:46.023 に答える
6

どうやら、インデックス'productid'がhtmlフォームにありません。最初に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'] : '';
于 2012-05-16T07:14:38.750 に答える
3

これは、フォームが投稿される前にPHPコードが実行されているために発生しています。

これを回避するには、PHPコードを次のifステートメントでラップし、残りを処理します。各変数のifステートメントを設定する必要はありません。

       if(isset($_POST) && array_key_exists('name_of_your_submit_input',$_POST))
        {
             //process PHP Code
        }
        else
        {
             //do nothing
         }
于 2016-11-28T18:27:48.527 に答える
2

試す

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

}
于 2014-11-04T06:18:36.767 に答える
0

を生成するときに問題が発生するはずです<form>$nameフィールドのに変数を入力すると、変数、$priceare NULL、または空の文字列に賭けechoます。空の入力フィールドはブラウザから送信されないため、キーはありません。value<input>$_POST

とにかく、あなたはそれをでチェックすることができますisset()

次の変数をテストします。

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

に設定したほうがいいですNULL

NULL値は、値のない変数を表します。

于 2012-05-16T07:14:32.270 に答える
0

割り当てる前に値を表示しようとしているので、これが発生しています。値を入力してフォームを送信すると、正しい出力が表示されます。または、フォームタグの下にurphpコードを記述できます。エラーなしで実行されます。

于 2013-12-18T09:24:56.340 に答える
-1

wamp serverを使用している場合は、xamppserverを使用することをお勧めします。君 。このエラーは1分以内に発生しますが、(isset)関数を使用して解決しました。エラーは発生しません。その後、(isset)関数を削除しましたが、エラーは表示されません。

ちなみに私はxamppサーバーを使用しています

于 2015-07-23T15:32:24.450 に答える
-2

このエラーは、メソッド属性(有効なパスメソッド)で発生しました。エラーオプション:method = "get"ですが、$ Fname = $_POST["name"]によって呼び出されました。また

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

詳細については、http://www.doordie.co.in/index.phpをご覧ください。

于 2014-05-29T11:57:18.250 に答える
-3

このエラーを削除するには、htmlフォームで次の手順を実行する必要がありますenctype

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

次のダウンがそのエラーの原因です。つまり、enctypeでform-dataから始める場合は、multipartから始める必要があります。

<form enctype="form-data/multipart">
于 2014-08-02T07:30:45.603 に答える