如何创建链接到特定帖子的网址?
问题描述:
我正在尝试构建一个问题& Answeer类似于Stack Overflow的网站,但更简单一些。我想知道我怎么能够为用户提出的特定问题生成一个URL(一个页面)?如何创建链接到特定帖子的网址?
是否将URL直接存储到我的数据库中?我使用PHP和MySQL构建它。
答
你需要在你的问题表上创建一个独一无二的键。
CREATE TABLE questions (
id integer auto_increment primary key
,title varchar(100) not null
-- ...
-- yours table fields
-- ...
)
或使用你的ID主键像键选择你的问题。
我想该URL是非常相似的未来:
http://www.yourdomain.com/questions.php?q=1002
当你列出你的问题,以链接尝试这个循环的PHP里面:
<a href="http://www.yourdomain.com/questions.php?q=<?=$question_info['id']?>">
<?=$question_info['title']?>
</a>
当你选择你的问题,你需要得到一个URL的参数。例如用$ _GET瓦尔这样的:
<?php
$mysqli = new('server','user','pass','bd_name');
$question_id = $_GET['q'];
$query="SELECT * FROM questions WHERE id='$question_id'";
//now you can launch the query to mysql
$result = $mysqli->query($query);
//get the rows array
$question_info = $result->fetch_array();
//your implementation
//.....
?>
您也可以与$ _POST瓦尔添加注释使用一个唯一的密钥的问题。
这是一个简单的答案,但这种方法存在一个安全问题,因为您需要清理$ _GET变量来防止SQL注入,但现在这不是问题。
答
您需要在数据库中存储帖子标识符并使用它来匹配URL。所以你的帖子URL应该包括标识符:http://example.org/posts/<post-identifier-here>
谢谢你的编辑马丁,以及所有的答案! – Jondave