我有一个问题,我想做一些搜索页面,它需要一个get变量排序的结果。因此,如果有人进入没有GET变量的页面,请重新加载页面并使其出现,例如,您输入www.myweb.com/search并自动重新加载并更改为www.myweb.com/search/?sort=ascending(因为该变量是必需的)。
希望你能理解我,再见
我想这对你想做的事情很有用:
if (empty($_GET['sort'])) {
header('Location: ' . $_SERVER['REQUEST_URI'] . '?sort=ascending');
exit();
}
在请求www.myweb.com/search
时执行的文件中,当$_GET['sort']不可用时,您应该有一个默认设置。对于这个答案,我将使用PHP作为我的例子,因为你没有指定。
<?php
if (empty($_GET['sort'])) {
$sort = 'ascending';
}
// the rest of your code
或者,可以强制重定向,但前面的示例更优雅。
<?php
if (empty($_GET['sort'])) {
header('Location: www.myweb.com/search/?sort=ascending');
exit;
}
请记住,第二种解决方案会丢弃其他任何东西,即其他$_GET,如item=widget
或color=blue
其他人张贴!isset
作为答案的注意事项。这行不通!示例:
www.myweb.com/search/?sort=&foo=bar
!isset($_GET['sort'])
=== false!
empty($_GET['sort'])
是在这种情况下合适的路由
最好自己定义变量,而不是重定向。只需使用isset检查变量是否定义。如果没有定义,你可以自己设置,如下所示:
if(!isset($_GET['sort']))
{
$_GET['sort']='ascending";
}