如何将一个GET变量添加到当前URL?(How to add a GET variable to t

2019-10-28 15:07发布

我有一个问题,我想作出一些搜索页面,它需要一个GET变量对结果进行排序。 所以,如果有人进入页面,而不该GET变量,重新加载页面,使其出现,比如你输入www.myweb.com/search并自动重装和改变www.myweb.com/search/?sort=ascending(因为该变量是必要的)。

我希望你能理解我,再见

Answer 1:

我认为这会为你希望做哪些工作:

if (empty($_GET['sort'])) {
    header('Location: ' . $_SERVER['REQUEST_URI'] . '?sort=ascending');
    exit();
}


Answer 2:

从当执行文件中www.myweb.com/search要求,你应该有一个默认设置时$ _GET [“排序”]不可用。 对于这个答案,我将使用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'])是走在这种情况下正确的路线。



Answer 3:

最好是通过自己定义变量而不是重定向。 只是isset检查变量定义或没有。 它一直没有被定义可以按照下述自己设置它。

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


文章来源: How to add a GET variable to the current URL?