如何安全地使用$ _GET ['id']通过选择html表行从数据库中获取详细信息

问题描述 投票:0回答:1

所以,我有这个工作代码点击一个链接,用于显示输入文本框中另一个页面上数据库的一行的详细信息:

    <?php
            foreach ($allCentrifuge as $list) {
                $id = $list['id'];
                ?>
                <tr>
                    <td><?php echo $list['experiment'] ?></td>
                    <td><?php echo $list['project_name'] ?></td>
                    <td><?php echo $list['project_date'] ?></td>
                    <td><a href="../Views/user_centrifuge.php?id=<?php echo $list['id']?>">Details</a></td>
                </tr>
                <?php
            }
            ?>

这个功能可以获得这些细节:

    public function fetchCentrifuge()
    {

        $uid = $_GET['id'];

        try {

            $stmt = $this->dbconn->prepare("SELECT * FROM centrifuge WHERE id = ?");
            $stmt->execute(array($uid));
            return $stmt->fetchAll();
        }

因此,从我阅读的所有主题中可以明显看出,这对SQL注入是危险的。但是如何在准备好的语句中使用此代码?我似乎无法使用id占位符。

php pdo get fetch
1个回答
1
投票

看起来不错。您还可以将输入var转换为INT。

(int)$_GET['id'] or intval($_GET['id'])
© www.soinside.com 2019 - 2024. All rights reserved.