Привет, ребята, я изучаю PHP, и приведенный ниже код отправляет информацию в мою базу данных MySQL, но она не совпадает с данными, которые я только что дал ему для вставки, например, он вставляет 1 | blank | blank для кода ниже. Я не могу решить это:
файл insert.php:
<?php
$con=mysqli_connect("localhost","root","");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// escape variables for security$firstname = mysqli_real_escape_string($con, $_POST['firstname']);
$age = mysqli_real_escape_string($con, $_POST['age']);
$sql="INSERT INTO Person (PID,Name, Age)
VALUES ('1','$firstname', '$age')";if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
echo "1 record added to database";
mysqli_close($con);
?>
Это заставляет меня говорить это:
Notice: Undefined index: firstname in E:\XAMPP\htdocs\Bioinformatics\insert.php on line 11
Notice: Undefined index: age in E:\XAMPP\htdocs\Bioinformatics\insert.php on line 12
код для HTML-формы:
<!DOCTYPE html>
<html>
<body>
<form name="input" action="insert.PHP" method="get">
First name: <input type="text" name="FirstName" value="Ronaldo"><br>
Age: <input type="text" name="Age" value="28"><br>
<input type="submit" value="Submit">
</form></body>
</html>
Спасибо за любую помощь, ребята!
потому что у вас нет значений для $_POST['firstname']
а также $_POST['age']
попробуйте проверить, есть ли у него значения или нет.
if(!empty($_POST['Firstname'])) {
$firstname = mysqli_real_escape_string($con, $_POST['Firstname']);
}
else {
echo 'firstname empty';
}
if(!empty($_POST['Age'])) {
$age= mysqli_real_escape_string($con, $_POST['Age']);
}
else {
echo 'age empty';
}
также то же самое для возраста
Для проверки значений поста попробуйте print_r($_POST);
на этой странице
Похоже, вы забыли опубликовать необходимые данные.
$ _POST [‘firstname’] и $ _POST [‘age’] не определены в вашем html.
Вы пропустили следующие данные или неправильно написали их:
<input type="text" name="firstname" />
<input type="text" name="age" />
менять
$firstname = mysqli_real_escape_string($con, $_POST['firstname']);
$age = mysqli_real_escape_string($con, $_POST['age']);
в
$firstname = $_POST['firstname'] ? mysqli_real_escape_string($con, $_POST['firstname']) : "";
$age = $_POST['age'] ? mysqli_real_escape_string($con, $_POST['age']) : "";
echo "<pre>";print_r($_REQUEST);exit;
// проверить значения во всей переменной.
Разместите свой php-код под html-кодом, чтобы избавиться от неопределенных уведомлений об индексе или использовать функцию isset (), например. если (Исеть ($ _ POST [ ‘возраст’])) или инициализировать эти переменные с нулевым значением. лайк $ age = «»;
также см. ответ @karlingen