【问题标题】:How to add a GET variable to the current URL?如何将 GET 变量添加到当前 URL?
【发布时间】:2013-01-14 02:33:12
【问题描述】:

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

希望你能理解我,再见

【问题讨论】:

  • 如果 $_GET['sort'] 没有发送,你不能使用默认值吗

标签: php variables search get


【解决方案1】:

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

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

【讨论】:

  • 如果用户已经在 url 中有 get 参数,它将覆盖它们。
  • 没问题,剩下的我知道了。非常感谢!
【解决方案2】:

在请求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']) 是在这种情况下采取的正确途径。

【讨论】:

    【解决方案3】:

    最好自己定义变量而不是重定向。只需检查变量是否已定义。没有定义的可以自己设置如下。

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

    【讨论】:

      猜你喜欢
      • 2011-03-10
      • 2021-03-29
      • 2015-05-06
      • 2017-08-25
      • 2012-01-23
      • 2011-03-05
      • 1970-01-01
      • 2017-05-01
      • 1970-01-01
      相关资源
      最近更新 更多