PHP не отправляет правильные вещи в MySQL

Привет, ребята, я изучаю 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>

Спасибо за любую помощь, ребята!

0

Решение

потому что у вас нет значений для $_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); на этой странице

0

Другие решения

Похоже, вы забыли опубликовать необходимые данные.
$ _POST [‘firstname’] и $ _POST [‘age’] не определены в вашем html.
Вы пропустили следующие данные или неправильно написали их:

<input type="text" name="firstname" />
<input type="text" name="age" />
1

менять

$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']) : "";
0

echo "<pre>";print_r($_REQUEST);exit; // проверить значения во всей переменной.

Разместите свой php-код под html-кодом, чтобы избавиться от неопределенных уведомлений об индексе или использовать функцию isset (), например. если (Исеть ($ _ POST [ ‘возраст’])) или инициализировать эти переменные с нулевым значением. лайк $ age = «»;

также см. ответ @karlingen

0
По вопросам рекламы [email protected]