Я пытался вставить данные в базу данных из данных, которые я собрал из формы. Я использовал $ _POST (id), но он выдавал ошибку с указанием undefined index. Поэтому я использовал функцию isset. Она исправила проблему с неопределенным индексом, но теперь isset возвращает false, поэтому он всегда вставляет значение по умолчанию переменной $ a (т.е. 'n').
Вот html файл:
<html>
<head></head>
<form action = "test.php">
<input type='text' id='a'/>
<input type='submit' value='sub'/>
</form>
</html>
и вот test.php:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$a = "n";
if (isset($_POST['a']))
$a=$_POST['a'];
$sql = "INSERT INTO test
VALUES ('$a')";
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>
whats wrong?
нет такая же проблема с скобками
Вы не предоставляете своим полям действительные имена ... поэтому возникает проблема с пустым $ _POST.






Вам необходимо указать в своих полях имена, поскольку они недействительны. Как заявляли другие, вам также необходимо убедиться, что метод установлен. Ниже приведен пример
<form action = "test.php" method = "post">
<input type='text' id='a' name='input_a'>
<input type='submit' value='sub'/>
</form>
Затем в вашем выводе $_POST должна отображаться ваша входящая информация.
Если вы не установите method = 'post', вы все равно уйдете с пустыми руками
подождите, только начало работать ... method = 'post' и name = 'input_a' сделали свое дело. Спасибо!
Отлично, если ответ помог вам и решил вашу проблему, не стесняйтесь отмечать его как действительный ответ :)
Также добавьте в форму атрибут метода. По умолчанию это get. А также атрибут имени вашего тега ввода
<form action='test.php' method='post'>
<input type='text' name='a' id='a' />
<input type='submit' value='sub'/>
</form>