【问题标题】:Remove query string from URL as part of a PHP function作为 PHP 函数的一部分从 URL 中删除查询字符串
【发布时间】:2017-07-21 18:11:52
【问题描述】:

我在Wordpress 网站上创建了一个按钮,允许我的用户将他们的位置从'London' 更改为'Manchester'

按钮使用$_POST来启动一个PHP函数。

作为PHP 函数的一部分,我想'clean' 用户所在页面的URL(即删除查询字符串),因为如果在更改位置时有任何查询字符串,它可能会搞砸当他们尝试使用过滤器时。

我找到了一种获取干净 URL 的方法

$url=strtok($_SERVER["REQUEST_URI"],'?');

我想我也许可以使用

wp_redirect($url);

用干净的URL 刷新页面 - 但似乎不起作用。

我认为这个问题之所以独特,是因为它与由 $_POST 请求启动的函数有关,而不是与正在加载的动作挂钩。结果,页面没有完全重新加载。我查看了其他问题,这些问题告诉我如何删除查询字符串(这很有帮助),但最后没有重定向我。

任何想法都非常感谢。

【问题讨论】:

标签: php wordpress query-string


【解决方案1】:

你可以试试

header("Location: ".$url);

【讨论】:

【解决方案2】:

请尝试一下

$url = strtok((empty($_SERVER['HTTPS']) ? 'http://' : 'https://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'], '?');

【讨论】:

    【解决方案3】:

    我最终使用 Javascript 来刷新页面,并使用一个删除查询字符串的函数:

    <form method="post" onsubmit="setTimeout(function () { window.location = window.location.pathname; }, 150)">
        <input type="submit" name="switchman" id="switchman" value="Switch to Manchester" />
    </form>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-02
      • 1970-01-01
      • 1970-01-01
      • 2017-06-01
      • 2020-04-20
      相关资源
      最近更新 更多