Member 13710355 Ответов: 1

Как исправить уведомление: неопределенная переменная: ошибка в C:\xampp\htdocs\new.php на линии


Привет, я новичок в PHP, я пытаюсь создать веб-сайт с использованием php и phpmyadmin. Этот сайт предназначен для просмотра всех записей из базы данных, удаления и добавления записей.Следующий код предназначен для добавления новой записи, у меня есть ошибки в строке 16, 20, 30, 32, 34, 36 и 83.

Пример ошибки: Примечание: неопределенная переменная: ошибка в C:\xampp\htdocs\New.php в строке 16 то же самое относится, как упоминалось ранее, к строкам 20, 30, 32, 34, 36 и 83.

Я включил номера строк рядом со строками кода с ошибками (например, строка 30)

Что вызывает эти проблемы и что мне нужно сделать, чтобы их решить ???




	<title>New Record

	

	

	<?php

	// if there are any errors, display them

	(Line16)if ($error != '');

	{

	(Line20)echo '<div style="padding: 4px; color: red">'.$error.'</div>';
//if assist
	}

	?>

	

	<div>
       
	(Line30)ID: * <input type="int" name="ID"<?php echo $ID; ?> /><br>

	(Line32)ProductName: * <input type="VARCHAR" name="ProductName"<?php echo $ProductName; ?> /><br>

	(Line34)Price:  * <input type="text" name="Price"<?php echo $Price; ?> /><br>
	
	(Line36)Stock:  * <input type="int" name="Stock"<?php echo $Stock; ?> /><br>

	<p>* required</p>

	

	</div>

	

	

	

	<?php

	

	//connect to database
		 $con = mysqli_connect("localhost","root","");
		 if (!$con) 
		 {
			 mysqli_select_db("stationaryonlinecustomers", $con);
		 }


	
	// check if the form has been submitted. If it has, start to process the form and save it to the database

	if (isset($_POST['submit']))

	{

	// get form data, making sure it is valid

	$ID = mysql_real_escape_string(htmlspecialchars($_POST['ID']));

	$ProductName = mysql_real_escape_string(htmlspecialchars($_POST['ProductName']));

    $Price = mysql_real_escape_string(htmlspecialchars($_POST['Price']));
       
    $Stock = mysql_real_escape_string(htmlspecialchars($_POST['Stock']));
      
	}

	// check to make sure both fields are entered

	(Line 83)if ($ID == '' || $ProductName == '' || $Price == '' || $Stock =='')

	{

	// generate error message

	$error = 'ERROR: Please fill in all required fields!';
	
	}

	else{
	// save the data to the database

	$u = mysql_query($con, "INSERT productorders SET ID='".$ID."', ProductName='".$ProductName."', Price='".$Price."', Stock='".$Stock."'");
	

	// once saved, redirect back to the view page

	header("location:View.php");

	

	

	// if the form hasn't been submitted, display the form

	renderForm('','','');

	}

	?>


Что я уже пробовал:

Книги PHP, веб-сайты, YouTube и консультирование коллег.

1 Ответов

Рейтинг:
8

Richard MacCutchan

Вы не определили переменную error ссылка на строку 16. В sysntax других утверждений не является верным, оно должно быть

<div>
<!-- note the position of the tag closer (/>) should come before the PHP statement
 -->
ID: * <input type="int" name="ID" /><?php echo $ID; ?> <br>

ProductName: * <input type="VARCHAR" name="ProductName" /><?php echo $ProductName; ?><br>

Price:  * <input type="text" name="Price" /><?php echo $Price; ?><br>

Stock:  * <input type="int" name="Stock" /><?php echo $Stock; ?><br>

<p>* required</p>



</div>


Member 13710355

@Richard MacCutchan, что вы подразумеваете под тем, что другие утверждения являются просто недопустимыми утверждениями ? Кроме того, как бы вы определили переменную error ?

Richard MacCutchan

Моя ошибка, они действительны. Но вы не сказали нам, какие ошибки они произвели.

Richard MacCutchan

Смотрите мое обновленное решение.

Member 13710355

Спасибо @Richard MacCutchan за ответ и решение, которое вы мне дали, но по какой-то причине одна и та же ошибка появляется для всех номеров строк, упомянутых в моем вопросе выше.

Я не знаю, как определить переменные для error, ID, ProductName, Price и Stock.

Richard MacCutchan

Я подозреваю, что это происходит потому, что вы определяете переменные внутри блоков кода, то есть между символами фигурных скобок, поэтому они не известны за пределами этих блоков. Вам нужно объявить их в области действия файла (то есть в начале программы), чтобы они были видны всей программе. Проверьте документацию PHP для получения примеров и полного объяснения правил области действия: Переменные PHP 5[^].

Tino Fourie

Старая Почта, я знаю, но ты вернул меня в нужное русло. Мой код работал отлично, и сегодня я сделал довольно много изменений во всем. После этого я получил эти чертовы сообщения и не мог понять, что, черт возьми, я сделал. Я искал StackExchange в течение многих часов, и было много решений, которые включали в себя еще 5 дней кодирования только для того, чтобы исправить это. Так просто!! Не знаю, что они там курят, но это не очень хорошо. +5 тебе, Ричард!! +5 к ОП за то, что задал этот вопрос.

Richard MacCutchan

Спасибо за комментарии, и удачи вам.