【问题标题】:Cant input data to database with PDO无法使用 PDO 将数据输入数据库
【发布时间】:2018-08-01 07:23:35
【问题描述】:

我尝试使用 PDO 向数据库输入数据,我制作了一个表单供用户输入,所以 forminput -> inputprocess。

但是当我按下提交时我无法输入因为它会转到 proses_input.php 并显示空白页。 我尝试在 1 个文件中编写代码,但是当我按下提交时,它再次显示输入表单。

这是我的 form_input.php

<form method="POST" action="proses_input.php">
<table>
    <tr>
        <td>Nama</td>
        <td> : </td>
        <td>
            <input type="text" name="nama" required>
        </td>
    </tr>
    <tr>
        <td>No. Pegawai</td>
        <td> : </td>
        <td>
            <input type="text" name="no_pegawai" required>
        </td>
    </tr>
    <tr>
        <td>Bagian</td>
        <td> : </td>
        <td>
            <input type="text" name="bagian">
        </td>
    </tr>
    <tr>
        <td>Jabatan</td>
        <td> : </td>
        <td>
            <input type="text" name="jabatan">
        </td>
    </tr>
    <tr>
        <td></td>
        <td></td>
        <td>
            <button type="submit" value="submit">Input</button>
        </td>
    </tr>
</table>
</form>

这是我的proses_input.php

<?php
include_once "connect.php";
if (isset($_POST["submit"])) {
    $no_pegawai = $_POST['no_pegawai'];
    $nama = $_POST['nama'];
    $bagian = $_POST['bagian'];
    $jabatan = $_POST['jabatan'];

    try { //KONDISI
        $sql = "INSERT INTO phonebook (no_pegawai, nama, bagian, jabatan) 
            VALUES (:no_pegawai, :nama, :bagian, :jabatan)";
    $input = $conn->prepare($sql);
    $input->bindparam(':no_pegawai', $no_pegawai);
    $input->bindparam(':nama', $nama);
    $input->bindparam(':bagian', $bagian);
    $input->bindparam(':jabatan', $jabatan);

    $input->execute();

        header('location: admin.php');
    } catch (PDOException $e) {
        echo $e->getMessage();
    }
}
?>

IDK 为什么但是每次我在表单中输入数据时,它总是卡在带有空白页的 proses_input.php 上。我已经尝试将其放入一个 php 文件但仍然无法正常工作。请帮助我,谢谢

【问题讨论】:

  • bindparam - 我应该认为是bindParam ~ 查看 PHP 错误日志和/或打开错误报告
  • &lt;button type="submit" value="submit"&gt;Input&lt;/button&gt; 更改为 &lt;input type="submit" name="submit" value="submit"&gt;
  • 你试过什么来调试这个问题?您是否尝试检查哪些输入到达您的脚本?

标签: php html pdo


【解决方案1】:

如上所述,您尚未命名按钮,因此它不会匹配条件isset($_POST["submit"]),因为在您的$_POST 数组中没有名为“提交”的字段。另外值得注意的是,您不应依赖用户的输入。我看到您正在使用参数化查询,这很好,但在 UI 上显示这些值时不要忘记转义这些值以避免 XSS 漏洞。

【讨论】:

  • 非常感谢,我没有意识到,因为我想要一个时尚的按钮来提交
猜你喜欢
  • 1970-01-01
  • 2012-11-11
  • 2014-06-29
  • 1970-01-01
  • 2021-08-20
  • 2014-08-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多