【问题标题】:The isset($_POST()) is returning false in the formisset($_POST()) 在表单中返回 false
【发布时间】:2018-05-30 17:57:14
【问题描述】:

我一直在尝试从我从表单收集的数据中将数据插入数据库。我使用了 $_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?

【问题讨论】:

  • 在控制结构中使用方括号。这就是您省略它们时会发生的情况。
  • 括号不一样
  • 你没有为你的字段提供有效的名字......因此空的 $_POST 问题。

标签: php database forms isset


【解决方案1】:

还将方法属性添加到您的表单中。默认为get。以及输入标签的名称属性

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

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

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

</form>

【讨论】:

    【解决方案2】:

    您需要为您的字段提供名称,就目前而言,这些名称无效。正如其他人所说,您还需要确保设置方法。下面是一个例子

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

    然后在$_POST 的输出中应该显示您的传入信息。

    【讨论】:

    • 如果你不设置 method='post' 你还是会空手而归
    • 等待刚刚开始工作......方法='post'和name='input_a'成功了。谢谢!
    • 太好了,如果某个答案帮助了您并解决了您的问题,请随时将其标记为有效答案 :)
    猜你喜欢
    • 2014-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    • 2012-12-14
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多