讓我說我有一個帖子,可以在頁面post.php?pid=60
找到,但如果用戶更改url爲post.php?pid=95
頁面顯示所有奇怪的是 有一種方法,我可以讓他們重定向到另一個說帖子dosn't存在或頁面?如果是的話,我會如何做到這一點?這是處理不存在頁面的最佳方式嗎?如果不是什麼是首選?PHP和MySQL動態頁面顯示問題
我正在使用PHP & MySQL如果有幫助。
讓我說我有一個帖子,可以在頁面post.php?pid=60
找到,但如果用戶更改url爲post.php?pid=95
頁面顯示所有奇怪的是 有一種方法,我可以讓他們重定向到另一個說帖子dosn't存在或頁面?如果是的話,我會如何做到這一點?這是處理不存在頁面的最佳方式嗎?如果不是什麼是首選?PHP和MySQL動態頁面顯示問題
我正在使用PHP & MySQL如果有幫助。
由給定$_GET["pid"]
得到這個職位,從DB如果後發現(即給定PID存在)
然後顯示它通常
其他包括錯誤網頁內容/應用頭重定向到錯誤頁面等
希望的邏輯可以幫助你
你應該檢查是否有我如果沒有,則顯示錯誤消息。
你有任何支持代碼嗎?這裏是一個樣本:
$pid = isset($_GET['pid'])?(int)$_GET['pid']:0; // use the ternary operator to set a default value
if (!empty($pid) {
$res = mysql_query("SELECT columns FROM table_name WHERE pid = $pid") or trigger_error('MySQL Returned: ' . mysql_error());
$rows = mysql_num_rows($res);
if ($rows > 0) {
// display the data
}else {
// There is no data so display the no-data page
}
}
它可能並不完全適合你,因爲你將不得不調整它,但應該給你一個大概的瞭解。
是的,我有代碼,但我只想知道如何做到這一點的基本思路。 – slick 2010-08-30 02:58:39
好吧,你可以嘗試從數據庫中選擇帖子,如果查詢沒有帶來任何東西,你會重定向到顯示所有帖子的頁面。對我來說,比展示「找不到頁面」消息更有意義(在這種情況下)。這個想法是這樣的:
$result = query('SELECT * FROM posts WHERE id=60');
if(! $result)
redir('all_posts.php');
這只是爲了描述問題。我假設查詢函數返回false
,null
或甚至一個空數組,如果沒有行返回,而不是通常的MySQL資源。
只記得添加一個exit;
(可能在重定向函數中),不讓頁面渲染所有奇怪的東西。
您需要將邏輯添加到'post.php',*之後*從數據庫中獲取信息(因爲您不知道有效的ID),並根據結果集中沒有返回的行重定向。 – 2010-08-30 02:53:30