Подтвердить что ты не робот

Undefined ошибка индекса PHP

Я новичок в PHP, и я получаю эту ошибку:

Примечание: Undefined index: productid в /var/www/test/modifyform.php on строка 32

Примечание: Undefined index: имя в /var/www/test/modifyform.php on line 33

Примечание: Undefined index: цена в /var/www/test/modifyform.php on line 34

Примечание: Undefined index: описание в /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'];

}

Что я делаю после этого (или, по крайней мере, я пытаюсь), это обновить таблицу в MySQL. Я действительно не могу понять, почему $rowID определяется, а другие переменные не являются.

Спасибо, что нашли время ответить мне. Ура!

4b9b3361

Ответ 1

Try:

<?php

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

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

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

?>

Ответ 2

По-видимому, в вашей 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'] : '';

Ответ 3

TRY

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

}

Ответ 4

Это происходит потому, что ваш PHP-код запускается до того, как форма будет отправлена.

Чтобы избежать этого, сверните свой PHP-код в следующий оператор if, и он будет обрабатывать остальные, не нужно устанавливать операторы для каждой переменной

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

Ответ 5

Должна быть проблема, когда вы создаете <form>. Уверен, что переменные $name, $price являются NULL или пустой строкой, когда вы echo их в value поля <input>. Пустые поля ввода не отправляются браузером, поэтому $_POST не будет иметь своих ключей.

В любом случае, вы можете проверить это с помощью isset().

Проверить переменные со следующим:

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

Лучше установите его на NULL, потому что

Значение NULL представляет переменную без значения.

Ответ 6

Эй, это происходит потому, что вы пытаетесь отобразить значение, прежде чем назначать его U просто заполните значения и отправьте форму, на которой будет отображаться правильный вывод Или вы можете написать ur php-код ниже форм тегов Он будет работать без ошибок

Ответ 7

Если вы используете wamp-сервер, я рекомендую вам использовать сервер xampp. вы. Я получаю эту ошибку менее чем за минуту, но я решил это, используя (isset) функцию. и я не получаю ошибок. и после этого я удаляю функцию (isset), и я не вижу ошибки.

Кстати, я использую сервер xampp

Ответ 8

эта ошибка произошла когда-то атрибут метода (действительный метод передачи) Ошибка:           method = "get", но вызывается $Fname = $_POST [ "name" ];                                или

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

Подробнее см. http://www.doordie.co.in/index.php

Ответ 9

Чтобы удалить эту ошибку, в форме html вы должны сделать следующее в enctype:

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

Приведенная ниже причина является причиной этой ошибки, если вы начинаете с данных формы в enctype, поэтому вы должны начать с multipart:

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