【问题标题】:Take Unique id and use as url for page获取唯一 id 并用作页面的 url
【发布时间】:2011-04-03 20:45:56
【问题描述】:

我正在建立一个网站,用于分享链接和图片以获取 php 经验。目前,每个帖子都有一个用户可以对其发表评论的页面。每个帖子还有一个 id,它与它一起存储在数据库中。使此 id 成为帖子网址的最简单方法是什么?例如: 对于 id 为 4a3cd5 的问题,我希望该问题的 url 为 post.com/posts.php/4a3cd5。谢谢你的回答。

【问题讨论】:

  • 好吧,其中包括一些 HTACCESS 路由...我建议暂时以 posts.php?id=4a3cd5 的形式使用它。你想要 htaccess 路由的 cod 还是可以解析那种 url 结构的 php 代码?
  • 我不确定我是否需要它,我现在只是在使用 localhost。我认为它是为此设置的
  • ...没有按照您默认显示的方式设置任何内容,尽管它看起来类似于代码点火器...

标签: php mysql url


【解决方案1】:

在HTAccess页面(.htaccess)中,编写如下代码:-

Options +FollowSymLinks
RewriteBase /
RewriteRule ^posts/(.*)/$ /posts.php?id=$1

所以现在,在地址空间中,如果您写http://localhost/posts/4a3cd5,用户将看到与4a3cd5 的帖子ID 对应的页面。在内部,将被处理的 URL 是 http://localhost/posts.php?id=4a3cd5。整个技术由 HTAccess 完成,这种向用户显示 URL 的方式称为 SEF URLs
有关 HTAccess 提示和技巧的更多信息,请参阅here

现在在“posts.php”页面中,您可以使用 PHP GET Superglobal Array "$_GET['id']" 编写您想要的所有逻辑。

NP: 特别注意 - 请尽量避免这种类型的编码。而是尝试使用任何可用的标准PHP MVC Frameworks

【讨论】:

    【解决方案2】:

    这会涉及很多,也许你应该只使用像/posts.php/?post=4a3cd5 这样的 URL。

    总的来说,这会更实用。您可以只GET post 变量并连接到您的 SQL 数据库。

    【讨论】:

    • Stackoverflow 是如何做到这一点的?他们有:stackoverflow.com/questions/5532392/…
    • 你将如何编写 php 代码以使表单创建一个具有唯一编号和 url 中的问题的页面?
    • 好的,我有它,所以帖子的 url 包含所有帖子数据和 id,我如何缩短它以便它只是 url 中的 id?现在看起来像:(answers.php/4d98ee65ca55e?name=hahaha&question=BLeh&id=4d98ee65ca55e&datafile=)
    • @jajaja 您只需要 URL 中的帖子 ID。然后使用这样的代码:<?php $post_id = mysql_real_escape_string($_GET['post_id']) // get id from url $query = "SELECT * FROM logins WHERE email='$email'"; $result = mysql_query($query); while($row = mysql_fetch_array($result)) { $id = $row['id']; $question = $row['question']; // etc etc } ?> 然后回显所有检索到的值。基本上我只会将所有问题存储在 MySQL 数据库中,然后通过 URL 问题唯一 ID 来检索问题。
    猜你喜欢
    • 2016-03-22
    • 1970-01-01
    • 2017-10-26
    • 1970-01-01
    • 1970-01-01
    • 2019-08-21
    • 1970-01-01
    • 2013-05-28
    • 2012-04-26
    相关资源
    最近更新 更多