wake-up-neo.net

gET-Parameter in URL entfernen, nachdem die Verarbeitung abgeschlossen ist (POST wird nicht verwendet), PHP

Ich habe eine solche URL http://localhost/join/prog/ex.php

Wenn ich die GET-Methode verwende, ist die URL-Adresse wie folgt http://localhost/join/prog/ex.php?name=MEMORY+2+GB&price=20&quantity=2&code=1&search=add

Meine Frage ist: So verwende ich immer noch die GET-Methode, aber nachdem die Verarbeitung in der GET-Methode abgeschlossen ist, möchte ich die URL wieder zurücksetzen (Parameter entfernen) in http://localhost/join/prog/ex.php, wie zuvor (nicht mit POST). Methode). Wie kann ich es tun?

17
dtnder

Fügen Sie dies in Ihre HTML-Datei ein (HTML5).

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

Oder verwenden Sie eine Backend-Lösung, die beispielsweise eine Sitzung verwendet.

<?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..
    }
33
Sanne

EINFACHE ANTWORT  

Platzieren Sie dies einfach in der Datei, die Sie benötigen, damit die GET-Abfragen nach dem Laden aus der URL-Leiste des Browsers verschwinden.

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

ich schätze, nachdem Sie die URL aufgerufen haben, die Sie zur Datei ex.php umleiten möchten, diesmal jedoch ohne Parameter . Versuchen Sie es mit folgendem Code in 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!";
}
?>

hier haben Sie die Umleitung auf dieselbe Seite umgeleitet, ohne zu prüfen, ob Parameter in der Abfragezeichenfolge vorhanden sind. Der Code prüft intelligent auf das Vorhandensein von Parametern. Wenn alle Parameter dort sind, werden sie zu ex.php umgeleitet. Andernfalls wird "Hi keine Parameter vorhanden!" Schnur!

1

Wenn Sie Apache verwenden, sollten Sie eine .htaccess-Datei mit mod_rewirte in Betracht ziehen. Hier ein Schnellstart. Ich denke, dieses Ergebnis kann auch mit der Datei web.config auf iis erzielt werden

0
lelloman