20

私はこのようなURLを持っていますhttp://localhost/join/prog/ex.php

GETメソッドを使用すると、次のようなURLアドレスが使用されますhttp://localhost/join/prog/ex.php?name=MEMORY+2+GB&price=20&quantity=2&code=1&search=add

私の質問は:だから、私はまだGETメソッドを使用していますが、GETメソッドでの処理が終了した後http://localhost/join/prog/ex.php、以前のように(POSTメソッドを使用せずに)URLを戻します(パラメーターを削除します)。どうすればいいですか?

4

5 に答える 5

40

これを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..
    }
于 2012-12-09T17:09:42.933 に答える
10

簡単な答え

これをファイルの先頭に配置するだけで、ロード後にGETクエリがブラウザのURLバーから消えるようにする必要があります。

<script>    
    if(typeof window.history.pushState == 'function') {
        window.history.pushState({}, "Hide", '<?php echo $_SERVER['PHP_SELF'];?>');
    }
</script>
于 2015-01-10T00:14:25.400 に答える
1

URLを呼び出した後、ファイルex.phpにリダイレクトしたいと思いますが、今回はパラメーターなしです。そのためには、ex.phpで次のコードを使用してみてください

<?
if($_GET['name']!='' || $_GET['price']!='' ||$_GET['quantity']!='' ||$_GET['code']!='' || $_GET['search']!=''){ 

/* here the code checks whether the url contains any parameters or not, if yes it will execute parameters stuffs and it will get redirected to the page http://localhost/join/prog/ex.php without any parameters*/

/* do what ever you wish to do, when the parameters are present. */

echo $name;
print $price;
//etc....

$location="http://localhost/join/prog/ex.php";
echo '<META HTTP-EQUIV="refresh" CONTENT="0;URL='.$location.'">';
exit;
}
else{
 /* here rest of the body i.e the codes to be executed after redirecting or without parameters.*/
echo "Hi no parameters present!";
}
?>

ここで、uが行ったことは、クエリ文字列にパラメータが含まれているかどうかを確認せずに、リダイレクトを同じページにリダイレクトするだけです。コードはパラメータの存在をインテリジェントにチェックします。パラメータがあれば、ex.phpにリダイレクトされます。それ以外の場合は、「Hi no parameterspresent!」と出力されます。ストリング!

于 2012-12-09T17:07:51.943 に答える
0

apacheを使用している場合は、mod_rewirteで.htaccessファイルを使用することを検討してください。 ここにクイックスタートがあります。この結果は、iisでもweb.configファイルを使用して取得できると思います。

于 2012-12-09T16:36:39.167 に答える
0

removable_query_argsそのためにフィルターを使用できます。

add_filter( 'removable_query_args', function( $vars ) {
        $vars[] = 'name';
        $vars[] = 'price';
        $vars[] = 'quantity';
        $vars[] = 'code';
        $vars[] = 'search';

        return $vars;
    } );

ただし、ケースに特定の条件を追加する必要があります。そうしないと、サイト上の他のすべてのURLからこれらのGetパラメーターも削除されます。詳細はこちら

于 2021-02-11T14:00:11.180 に答える