【发布时间】:2021-07-07 22:55:09
【问题描述】:
所以我对 MySqli 和 PHP 还很陌生,我正在尝试创建一个论坛。 我现在被困在这一点上,我让论坛显示我的“板”和“线程”,但它在每个板上显示相同的线程。 此外,无论我点击哪个线程,它总是将我带到同一个线程。 这是我的 view-thread.php 的代码。
<?php
include 'forumdb.php';
$board_id = $_GET['board_id'];
$thread_id = $_GET['thread_id'];
$get_board = $mysqli->query("SELECT * FROM boards WHERE board_id = $board_id");
$board_data = $get_board->fetch_assoc();
$get_thread = $mysqli->query("SELECT * FROM threads WHERE thread_id = $thread_id");
$thread_data = $get_thread->fetch_assoc();
?>
<!DOCTYPE html>
<html>
<head>
<title><?php echo $thread_data['thread_title'] ?></title>
</head>
<body>
<a href="forum.php">Home</a> | <a href="view-board.php?board_id=<?php echo $board_id ?>"><?php echo $board_data['board_name'] ?></a> | <b><?php echo $thread_data['thread_title'] ?></b><br><br>
Title: <b><?php echo $thread_data['thread_title'] ?></b><br><br>
<b>Content:</b><br>
<?php echo $thread_data['thread_content'] ?>
</body>
</html>
这是我的 view-board.php 代码
<?php
include 'forumdb.php';
$board_id = $_GET['board_id'];
$get_board = $mysqli->query("SELECT * FROM boards WHERE board_id = $board_id");
$board_data = $get_board->fetch_assoc();
?>
<!DOCTYPE html>
<html>
<head>
<title><?php echo $board_data['board_name'] ?></title>
</head>
<body>
<a href="forum.php">Home</a> | <b><?php echo $board_data['board_name']; ?></b><br><br>
<a href="add-thread.php?board_id=<?php echo $board_id ?>">Post New Thread</a><br><br>
<?php
$threads = $mysqli->query("SELECT * FROM threads WHERE board_id = $board_id");
while ($thread_data = $threads->fetch_assoc()) { ?>
<b>#<?php echo $thread_data['thread_id'] ?></b> <a href="view-thread.php?thread_id=<?php echo $thread_data['thread_id'] ?>&board_id=<?php echo $board_id ?>"><?php echo $thread_data['thread_title'] ?></a>
<?php }
if ($threads->num_rows == null) {
echo '<br><br>no threads posted yet';
}
?>
</body>
</html>
【问题讨论】:
-
在深入了解之前先查看stackoverflow.com/questions/60174/…,因为您的代码易受sql注入
-
在任何人了解漏洞之前。这个项目不应该是安全的。专注于我的问题,而不是其他任何事情。
-
请先修复SQL注入。只有这样我们才能调查任何其他问题
-
缺少参数化查询可能会导致除了安全问题之外的其他问题,它可能会由于未转义的输入而导致崩溃。 100% 值得修复。
-
i'm pretty new to MySqli and PHP...I'm trying to create a forum。不要咬得比你能咀嚼的多。这并不意味着令人沮丧,只是现实。为了创建一个可用的论坛应用程序,有很多知识需要了解,即使您的目标相对温和。通过更简单、离散的示例和小型项目,专注于学习一些核心技能和编程概念。从一些代码和 cmets 来看,您似乎跳过了那部分并直接“构建了一些很酷的东西”,然后不可避免地陷入了复杂性。