You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP点击More View按钮在orders.php展示对应图书提交数据问题求助

功能修复方案

核心问题定位

你当前的功能异常主要是orders.php存在以下错误:

  • 没有接收从URL传递过来的对应书籍ID参数
  • SQL查询语句逻辑完全错误,WHERE条件不符合需求
  • 表格渲染时所有字段都错误输出了ID值,没有调用对应字段
  • 缺少基础安全校验,存在SQL注入风险

修复步骤

1. 可选优化(避免部分环境路由异常)

修改Availablebooks.php中的跳转链接,去掉多余的斜杠:

// 原代码
<a href="http://localhost:80/orders.php/?id=<?php echo $rows['ID']; ?>">More Views</a>
// 修改为
<a href="http://localhost:80/orders.php?id=<?php echo $rows['ID']; ?>">More Views</a>

2. 替换orders.php全部代码为以下内容

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>书籍详情</title>
</head>
<body>
<?php
$servername = 'localhost';
$username = 'root';
$password = '';
$dbname = 'list';
$connect = mysqli_connect($servername, $username, $password, $dbname);
if (!$connect) {
  die("连接失败: " . mysqli_connect_error());
}

// 接收URL传递的书籍ID,转换为整数避免SQL注入
$book_id = isset($_GET['id']) ? intval($_GET['id']) : 0;
if ($book_id <= 0) {
    die("参数错误,无效的书籍ID");
}

// 修正SQL查询语句,按ID查询对应书籍
$sql = "SELECT * FROM books WHERE ID = $book_id";
$result = mysqli_query($connect, $sql);
if (!$result || mysqli_num_rows($result) == 0) {
    die("未查询到对应书籍信息");
}
$rows = mysqli_fetch_assoc($result);
?>

<table align="left" border="1px" width="600px" line-height="30px" >
    <tr>
        <th colspan="4">书籍详情</th>
    </tr>
    <tr>
        <th>ID</th>
        <th>书籍名称</th>
        <th>作者</th>
        <th>可借阅数量</th>
    </tr>
    <tr>
        <td><?php echo $rows['ID']; ?> </td>
        <td><?php echo $rows['Tittle']; ?> </td>
        <td> <?php echo $rows['Author']; ?>  </td>
        <td> <?php echo $rows['Copies']; ?>  </td>
    </tr>
</table>    

</body>
</html>

额外提示

你原有的数据插入代码也存在SQL注入风险,后续正式上线建议改为参数绑定的方式处理用户提交的数据,避免数据库被恶意操作。

内容的提问来源于stack exchange,提问作者Ovie Peter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 10:51:04