如何向当前URL添加GET变量


How to add a GET variable to the current URL?

我有一个问题,我想做一些搜索页面,它需要一个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=widgetcolor=blue

其他人张贴!isset作为答案的注意事项。这行不通!示例:

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

!isset($_GET['sort']) === false!

empty($_GET['sort'])是在这种情况下合适的路由

最好自己定义变量,而不是重定向。只需使用isset检查变量是否定义。如果没有定义,你可以自己设置,如下所示:

if(!isset($_GET['sort']))
{
$_GET['sort']='ascending";
}