【问题标题】:redirect to a content page when a link is clicked单击链接时重定向到内容页面
【发布时间】:2025-12-25 05:50:11
【问题描述】:

我刚开始使用 PHP 和 MYSQL,并试图弄清楚如何重定向到 页面 并显示内容。

我有这个 PHP 代码列出了我的数据库中的所有主题行

while ($row = $result->fetch_array()) {
    echo '<a href="#"><p class="list" st>' . $row['topic'] . '<br /></a>';
    }

它将列出&lt;a href&gt; 标记内的所有主题。

当点击链接时,我将被重定向到基于主题链接显示内容的页面。

我只需要创建该页面的逻辑。基本上我有 page.php 我打算把逻辑。但我不知道如何开始。

【问题讨论】:

  • 你为什么不在你的数据库中添加一个link字段来存储每个链接的页面链接并将其放在href而不是重定向中。
  • 您的主题链接地址存储在哪里?或者您如何定义主题链接?
  • 顺便说一句..您的 HTML 无效。

标签: php


【解决方案1】:

我建议使用GET 方法将ID 的内容发送到您的 page.php ,url 应该是这样的:

  http://site.com/page.php?id=120

并且在您的 page.php 中使用$_GET['id'] 获取 id,我承认您在数据库中有内容,因此您将根据此 id 显示数据。

PHP 代码:

   while ($row = $result->fetch_array()) {
      echo '<a href="page.php?id='.$id.'"><p class="list" st>' . $row['topic'] . '<br /></a>';
    }

很重要的一点,注意sql注入尤其是拿到id的时候。

关于防止 SQL 注入的有用链接:

-How can I prevent SQL injection in PHP?

-What's the best method for sanitizing user input with PHP?

-Protect against SQL injection

【讨论】:

  • 哦,这就是你的做法......所以我使用 GET 来识别 ID 并显示该 ID 的相应内容。多么聪明:) 谢谢。另外,对不起我的无知,如果我使用 GET,我如何保护自己免受那些 sql 注入?
【解决方案2】:

基本上每个链接都需要携带一条信息到page.php,以便告诉该页面要显示什么内容。这可能是特定记录的某种标识符。像这样的:

echo '<a href="page.php?id=' . $row['ID'] . '"><p class="list" st>' . $row['topic'] . '<br /></a>';

这将使每个链接都具有id 参数的唯一性。然后,在page.php 上的代码中,您将检查该参数作为查询字符串值,该值可在此处获得:

$_GET['id']

请记住,用户可以欺骗此值,并在本质上将他们想要的任何内容放入该链接中,因此请确保它是一个有效的 ID,并确保您不会在没有先清理输入的情况下直接在数据库查询中使用它,否则用户会为您的数据库敞开大门。 (阅读 SQL 注入了解更多信息。)

使用该值,page.php 将在数据库中查询与该 ID 匹配的一条记录,并相应地显示该记录中的数据。

【讨论】:

    【解决方案3】:
    while ($row = $result->fetch_array()) {
    echo '<a href="page.php?topic="'.$row['topic'].'><p class="list" st>' . $row['topic'] . '<br /></a>';
    }
    

    在 page.php 中创建一个主题的每个函数并调用请求所针对的相应函数

    【讨论】: