我有一个主页面,用户可以根据传递给它的变量显示MySQL查询的输出。所以;
http://website/mypage.php?page=0
但是,我想设置重定向,以便有人去
http://website/mypage.php
它将转到http://website/mypage.php?page=0
。我想到使用以下代码,它验证当前页面以及验证用户的会话是否已建立;
elseif ($_SERVER['PHP_SELF'] == '/mypage.php' && isset($_SESSION['valid_user']))
{
header('Refresh: 0; URL=/mypage.php?page=0');
}
但是,这看起来太笼统了。有没有办法检查'/mypage.php'或'/mypage.php?page='?我想用strlen来检查/mypage.php中只有11个字符,但我不确定这是最有效的方法。
答案 0 :(得分:2)
您可以检查变量页面是否有值,如果它是空的,您可以进行重定向
if($_GET['page'] == ''){
header('Location: /mypage.php?page=0');
exit;
}
或
if(!isset($_GET['page'])){
header('Location: /mypage.php?page=0');
exit;
}
答案 1 :(得分:1)
你应该这样使用:
header('Location: /mypage.php?page=0');
exit;
否则请检查$ _SERVER变量以获得更严格的匹配。 http://php.net/manual/en/reserved.variables.server.php
我想你可能需要$_SERVER['REQUEST_URI']
答案 2 :(得分:1)
在您的mypage.php
中,您可以查看类似的内容
if(!isset($_GET['page'])) {
header('location: /mypage.php?page=0');
exit;
}
但是,我认为,不是使用get变量重定向到同一页面,为什么不设置默认情况下要显示的页面,如果没有设置page
变量。
答案 3 :(得分:1)
这是你要找的吗?
if(!isset($_GET['page']) || empty($_GET['page'])) {
Header('Location: http://website/mypage.php?page=0')
exit();
}
或
if(!isset($_GET['page']))
$_GET['page'] = 0;
我不确定第二个解决方案,你不应该将值归因于$ _GET []变量。
答案 4 :(得分:1)
if( !isset($_REQUEST['page']) ) {
header('Location: /mypage.php?page=0');
exit(0);
} else {
if( $_REQUEST['page']=="" ) {
header('Location: /mypage.php?page=0');
exit(0);
}
}