Isset ($ _ POST ()) возвращает false в форме

Я пытался вставить данные в базу данных из данных, которые я собрал из формы. Я использовал $ _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?
Используйте скобки для ваших управляющих структур. Вот что происходит, когда вы их опускаете.
John Conde 30.05.2018 19:58

нет такая же проблема с скобками

Dhanraj Mahurkar 30.05.2018 20:00

Вы не предоставляете своим полям действительные имена ... поэтому возникает проблема с пустым $ _POST.

Adam 30.05.2018 20:02
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
3
739
2

Ответы 2

Вам необходимо указать в своих полях имена, поскольку они недействительны. Как заявляли другие, вам также необходимо убедиться, что метод установлен. Ниже приведен пример

<form  action = "test.php" method = "post">
    <input type='text' id='a' name='input_a'>
    <input type='submit' value='sub'/>
</form>

Затем в вашем выводе $_POST должна отображаться ваша входящая информация.

Если вы не установите method = 'post', вы все равно уйдете с пустыми руками

jibsteroos 30.05.2018 20:09

подождите, только начало работать ... method = 'post' и name = 'input_a' сделали свое дело. Спасибо!

Dhanraj Mahurkar 30.05.2018 20:11

Отлично, если ответ помог вам и решил вашу проблему, не стесняйтесь отмечать его как действительный ответ :)

Adam 30.05.2018 20:12

Также добавьте в форму атрибут метода. По умолчанию это get. А также атрибут имени вашего тега ввода

<form action='test.php' method='post'>

<input type='text' name='a' id='a' />

<input type='submit' value='sub'/>

</form>

Другие вопросы по теме