1

我有一个问题,我想做一些搜索页面,它需要一个 get 变量来对结果进行排序。因此,如果有人在没有该 GET 变量的情况下进入页面,请重新加载页面并使其显示,例如您输入 www.myweb.com/search 并自动重新加载并更改为 www.myweb.com/search/?sort=ascending(因为该变量是必要的)。

希望你能理解我,再见

4

3 回答 3

1

我认为这将适用于您想要做的事情:

if (empty($_GET['sort'])) {
    header('Location: ' . $_SERVER['REQUEST_URI'] . '?sort=ascending');
    exit();
}
于 2013-01-14T02:41:24.180 回答
0

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=widgetcolor=blue

请注意其他人!isset作为答案发布。这是行不通的!例子:

www.myweb.com/search/?sort=&foo=bar

!isset($_GET['sort'])=== 假的!

empty($_GET['sort'])是在这种情况下采取的正确途径。

于 2013-01-14T02:44:36.823 回答
-2

最好自己定义变量而不是重定向。只需检查变量是否已定义。它尚未定义,您可以自己设置如下。

if(!isset($_GET['sort']))
{
$_GET['sort']='ascending";
}
于 2013-01-14T02:44:03.933 回答