gpt4 book ai didi

php - 将 ?id=__ 重写为存储在数据库行中的页面标题

转载 作者:行者123 更新时间:2023-11-29 00:52:30 25 4
gpt4 key购买 nike

在此先感谢您的帮助。

我正在尝试弄清楚如何重写使用我正在构建的简单 cms 编程创建的动态 url。该代码输出带有 ID 的 URL (www.mysite.com/index.php?id=1)。我想修改代码,以便它输出数据库中 id 为 1 的行的标题,例如 www.mysite.com/home 或 www.mysite.com/about 行中存储的标题在哪里id 为 1 的数据库。

下面是代码输出的示例:

$result = mysql_query("SELECT id, title FROM pages");

while ($row = mysql_fetch_array($result)) {
// Do not list the home page twice
if ($row['id'] != $homeID) {
$pageID = $row['id'];
$pageTitle = $row['title'];

echo "<li><a href='" . BASE_URL . "/index.php?id=$pageID'>$pageTitle</a></li>";
}

我将从以下位置开始 CMS 教程:http://fwebde.com/web-design/creating-a-php-cms-part-1/

如有任何帮助,我们将不胜感激。我尝试了无数次 .htaccess 重写,但都没有奏效。请让我知道这是否像切换 MySQL 代码一样简单。

最佳答案

然后您必须修改生成链接的行:

echo "<li><a href='" . BASE_URL . "/index.php?id=$pageID'>$pageTitle</a></li>";

您可以将标题添加为单独且未使用的 &title= 参数,这是一个很好的技巧,可以避免修改任何其他内容:

echo "<li><a href='" . BASE_URL . "/index.php?id=$pageID&title=$pageTitle'>$pageTitle</a></li>";

或者生成123+title链接:

echo "<li><a href='" . BASE_URL . "/index.php?id=$pageID+$pageTitle'>$pageTitle</a></li>";

这将需要调整实际的“cms”调度程序代码,因为它必须从 $_GET 参数中拆分 ID 和标题。

或者甚至用标题替换整个 index.php?id=:

echo "<li><a href='" . BASE_URL . "/$pageTitle'>$pageTitle</a></li>";

这又需要部署一个 .htaccess 规则(类似于 htaccess URL routing for PHP MVC? )。您必须再次修改 index.php 脚本才能从 title 中查找 id。这同样只有在您数据库中的标题都是唯一的情况下才有效。

P.S.:您实际上还应该使用 urlencode($pageTitle)$pageTitle 上的 htmlspecialchars() 成为链接文本。

关于php - 将 ?id=__ 重写为存储在数据库行中的页面标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7789567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com