【问题标题】:PHP Problems with using the $_POST with and insert statement使用 $_POST with 和 insert 语句的 PHP 问题
【发布时间】:2013-05-24 17:05:01
【问题描述】:
<?php 
$name = $_POST['usrname'];
$review = $_POST['usrcomment'];
$con = mysqli_connect("host","user","password","db");
if (mysqli_connect_errno()){
   echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
else {
  $sql="INSERT INTO Feedback (ClientName, ClientComment) VALUES('$name','$review')";
  mysqli_query($con,$sql);
}
if (!mysqli_query($con,$sql)){
   die('Error: ' . mysqli_error($con));
}
mysqli_close($con);
?>

这是错误声明:注意:未定义索引:usrname。

我正在尝试将 Web 表单连接到数据库。我的 Web 表单的文本字段出现未定义索引的错误。我使用带有 $_POST 函数的 SQL 插入语句将数据从 Web 表单插入到数据库中。我从语句中删除了 post 函数,并在其中放置了一些真实数据。该语句起作用并将信息放入数据库。似乎错误与 post 功能有关。有什么想法。 谢谢, 马特

【问题讨论】:

  • 你能发布你的代码和确切的错误吗?
  • Notice: Undefined index 在您尝试使用不存在的数组键时发生。可能是它尚未设置 - 在初始页面加载时使用 $_POST['username'] 而没有发布表单/表单元素 &lt;input name="username" /&gt; - 或者拼写错误的数组键 &lt;input name="username" /&gt;/$_POST['uname']
  • 告诉我们这个的输出:echo '&lt;pre&gt;';print_r($_REQUEST);echo '&lt;/pre&gt;'

标签: php sql post


【解决方案1】:

使用var_dump($_POST) 来调试问题。您在网络表单中输入字段的名称可能与您在$_POST 中使用的索引不匹配。还要确保您的网络表单使用的是POST 而不是GET

【讨论】:

    【解决方案2】:

    我们可以做几件事来解决这个问题。 1.确保action =指向正确的php文件 2. 复制您尝试使用的元素的name 属性并将其传递到$_POST[''] 的关键区域,因此如果您有&lt;input type = "text" name = "user"&gt;,您的变量将类似于$user = $_POST['user']; 3.print_r数组。每个 php 程序员都应该拥有的一个功能是

    function printarray($printarray){ 
        echo '<pre>';
            print_r($printarray);
        echo '</pre>';
    }
    

    那么每次你需要打印你的全局变量时:

    printarray($_REQUEST);
    

    BAM 就是你发送的所有变量

    【讨论】:

    • 我试过这个函数,数组是空的。表单指向正确的 php 文件,并设置为 post。输入类型的名称是正确的。
    • @MattGraham 我可以说您的代码没有其他问题,您收到的错误通常来自名称字段不正确,然后调用了错误的帖子值。但是,由于您的全局发送变量的print_r 是空的,这也意味着您拥有的另一个字段是空的,对吗?这让我相信您正在代码中的某处进行页面刷新或重定向。
    猜你喜欢
    • 2021-07-02
    • 2018-10-26
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 2013-03-12
    • 2019-03-17
    相关资源
    最近更新 更多