【问题标题】:PHP: Remove URL Param?PHP:删除 URL 参数?
【发布时间】:2010-12-19 01:18:28
【问题描述】:

我有一个函数,我在页面末尾附加了?clear-cart 来调用它;你可能已经猜到了,这个函数清除了用户的购物车。

我这样称呼它

<a href="?clear-cart">Clear Cart</a>

效果很好(因为它加载了相同的页面,但现在购物车被清除了),除了地址栏中的 URL 现在读取

http://test.local/cart?clear-cart

有没有办法调用?clear-cart,但网址返回没有参数? (对用户隐藏它,因为我只是将它用于内部函数调用??)

【问题讨论】:

    标签: php url parameters


    【解决方案1】:

    使用 POST 请求代替 GET 请求?

    【讨论】:

    • 我知道我不能使用带有 &lt;a&gt; 超链接的 POST 请求。
    • @neezer,在 onclick 事件方法中加上一点 javascript,一切皆有可能。
    【解决方案2】:

    您可以清除购物车,然后使用标题立即重定向(显然在任何输出之前!)。

    <?php
        header('Location: http://test.local/cart');
        ... clear the cart ...
    ?>
    

    有关详细信息,请参阅PHP reference manual

    【讨论】:

    • @neezer: 不要忘记die()header 之后。
    • 这种情况下,我认为exit()会更合适。
    【解决方案3】:

    您可以在另一个脚本中编写您的购物车清除代码,并在完成后将其重定向回您的页面。

    【讨论】:

      【解决方案4】:

      好吧,在清除购物车的函数中,您可以使用 header() 函数将用户重定向到正确的 URL。

      【讨论】:

        【解决方案5】:

        类似的事情应该做你想做的事:

        if (isset($_GET['clear-cart'])) {
        
          clear_cart();
          header('Location: http://test.local/');
        
        }
        

        根据您的需要进行修改。

        【讨论】:

          【解决方案6】:

          将页面http://test.local/cart 链接到页面http://test.local/cart?clear-cart,然后将用户重定向回http://test.local/cart

          /cart -> /cart?clear-cart -> /cart

          if (isset($_GET['clear-cart'])) {
            // Do some cart clearing...
            // Redirect back
            header('Location: /cart');
            exit;   // Very important, otherwise the script will continue until it finally redirects
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2021-04-02
            • 2013-03-24
            • 1970-01-01
            • 2011-12-19
            • 1970-01-01
            • 1970-01-01
            • 2014-10-25
            相关资源
            最近更新 更多