我有一个问题,我想做一些搜索页面,它需要一个 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'])
=== 假的!
empty($_GET['sort'])
是在这种情况下采取的正确途径。
最好自己定义变量而不是重定向。只需检查变量是否已定义。它尚未定义,您可以自己设置如下。
if(!isset($_GET['sort']))
{
$_GET['sort']='ascending";
}