处理完成后删除URL中的GET参数(不使用POST),PHP

2022-08-30 20:27:40

我有这样的网址http://localhost/join/prog/ex.php

当我使用GET方法时,网址地址如下所示http://localhost/join/prog/ex.php?name=MEMORY+2+GB&price=20&quantity=2&code=1&search=add

我的问题是:所以,我仍然使用GET方法,但我想在GET方法处理完成后,我想把url back(remove参数)放进去,像以前一样(不使用POST方法)。我该怎么做?http://localhost/join/prog/ex.php


答案 1

将其放入您的 HTML 文件 (HTML5) 中。

<script>    
    if(typeof window.history.pushState == 'function') {
        window.history.pushState({}, "Hide", "http://localhost/join/prog/ex.php");
    }
</script>

或者使用后端解决方案,例如使用会话;

<?php
    session_start();

    if (!empty($_GET)) {
        $_SESSION['got'] = $_GET;
        header('Location: http://localhost/join/prog/ex.php');
        die;
    } else{
        if (!empty($_SESSION['got'])) {
            $_GET = $_SESSION['got'];
            unset($_SESSION['got']);
        }

        //use the $_GET vars here..
    }

答案 2

简单的答案

只需将其放在文件的顶部,您需要使GET查询在加载后从浏览器的URL栏中消失。

<script>    
    if(typeof window.history.pushState == 'function') {
        window.history.pushState({}, "Hide", '<?php echo $_SERVER['PHP_SELF'];?>');
    }
</script>

推荐