假设我有一个帖子可以在页面post.php?pid=60
找到,但是如果用户将网址更改为post.php?pid=95
,则会显示页面,所有奇怪的是
有一种方法,我可以让他们重定向到另一个页面,说帖子不存在或什么?如果是这样,我该怎么做?这是处理现有页面的最佳方法吗?如果不是首选的那个?
我正在使用PHP& MySQL如果有帮助的话。
答案 0 :(得分:2)
通过给定$_GET["pid"]
如果发现帖子(即存在pid)
然后正常显示
否则包括错误页面内容/使用标题以重定向到错误页面等。
希望逻辑可以帮助你
答案 1 :(得分:1)
好吧,您可以尝试从数据库中选择帖子,如果查询没有带来任何内容,您可以重定向到显示所有帖子的页面。对我来说比展示“找不到页面”消息(在这种情况下)更有意义。这个想法是这样的:
$result = query('SELECT * FROM posts WHERE id=60');
if( ! $result)
redir('all_posts.php');
这只是为了描绘问题。我假设查询函数返回false
,null
,如果没有返回行,则返回一个空数组,而不是通常的mysql资源。
只需记住添加exit;
(可能在重定向功能中),不要让页面呈现出奇怪的效果。
答案 2 :(得分:0)
您应该检查数据库中是否有数据返回,如果没有,则显示错误消息。
你有任何支持代码吗?这是一个模拟:
$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
}
}
它可能不适合你,因为你必须调整它,但应该给你一个粗略的想法。