我正在嘗試構建一個問題& Answeer類似於Stack Overflow的網站,但更簡單一些。我想知道我怎麼能夠爲用戶提出的特定問題生成一個URL(一個頁面)?如何創建鏈接到特定帖子的網址?
是否將URL直接存儲到我的數據庫中?我使用PHP和MySQL構建它。
我正在嘗試構建一個問題& 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