Isset ($ _ POST ()) возвращает false в форме - PullRequest
0 голосов
/ 30 мая 2018

Я пытался вставить данные в базу данных из данных, которые я собрал из формы. Я использовал $ _POST (id), но он выдавал ошибку, говорящую о неопределенном индексе. Так что я использовал функцию 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?

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

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

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

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

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

</form>
0 голосов
/ 30 мая 2018

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

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

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

...