Неопределенная ошибка индекса PHP

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

Примечание. Неопределенный индекс: productid в /var/www/test/modifyform.php в строке 32

Примечание. Неопределенный индекс: имя в /var/www/test/modifyform.php в строке 33

Примечание. Неопределенный индекс: цена в /var/www/test/modifyform.php в строке 34

Примечание. Неопределенный индекс: описание в /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 определен, а другие переменные – нет.

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

Пытаться:

 <?php if (isset($_POST['name'])) { $name = $_POST['name']; } if (isset($_POST['price'])) { $price = $_POST['price']; } if (isset($_POST['description'])) { $description = $_POST['description']; } ?> 

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

ПЫТАТЬСЯ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Более подробная информация – http://www.doordie.co.in/index.php

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

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

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

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