我遇到了一个问题。如果可能的话,我可以为$_GET“主题”写一条其他语句吗?
case 'thread-view':
if(isset($_GET['topic'])){
$topicid = $_GET['topic'];
$psql = "SELECT * FROM posts WHERE th_p_link='$topicid' ORDER BY p_id ASC";
$presult = mysqli_query($db,$psql);
while($prow = mysqli_fetch_array($presult)){
$post = $prow['p_post'];
$author = $prow['p_author'];
$avatar = $prow['p_avatar'];
$gm = $prow['p_gm'];
$date = $prow['p_date'];
$link = $prow['th_p_link'];
echo '
<div class="post_box">
<div id="post-left">
<img src="'.$avatar.'" alt="">
<div id="post-about">
<span>'.$author.'</span>
<span>Member</span>
</div>
</div>
<div id="post-content">
<p>'.htmlspecialchars($post, ENT_QUOTES).'</p>
</div>
<div id="post-right">
<i>'.$date.'</i>
</div>
</div>
';
}
}
break;
default:
include 'template/forum_categories.php';举个例子,如果我转到URL
page?page=线程-视图&主题=testurlpost
它正确地显示了页面。不过,我想要达到的是,如果我去做一些不存在的事情,比如
forums.php?page=thread-view&topic=testurlthatdoesntexist
我希望它重定向到另一个页面,例如错误页面。我怎样才能做到这一点?我为$_GET‘’topic‘做了一个其他的声明,但是当我输入不存在的URL时,它就不起作用了。
发布于 2016-09-06 15:22:59
你应该加上
if(!mysqli_num_rows($presult)) {
header("Location: /error-page.html");
}在While声明之前。所以您的代码将如下所示:
case 'thread-view':
if(isset($_GET['topic'])){
$topicid = $_GET['topic'];
$psql = "SELECT * FROM posts WHERE th_p_link='$topicid' ORDER BY p_id ASC";
$presult = mysqli_query($db,$psql);
if(!mysqli_num_rows($presult)) {
header("Location: /error-page.html");
}
while($prow = mysqli_fetch_array($presult)){https://stackoverflow.com/questions/39352395
复制相似问题