J'ai une URL comme celle-ci http://localhost/join/prog/ex.php
Quand j'utilise la méthode GET, l'adresse URL est la suivante: http://localhost/join/prog/ex.php?name=MEMORY+2+GB&price=20&quantity=2&code=1&search=add
Ma question est la suivante: donc, j'utilise toujours la méthode GET mais je souhaite qu'après le traitement dans la méthode GET soit terminée, je souhaite que l'URL retourne (paramètre remove) dans http://localhost/join/prog/ex.php
, comme auparavant (sans utiliser la méthode POST ). Comment puis-je le faire?
Mettez ceci dans votre fichier HTML (HTML5).
<script>
if(typeof window.history.pushState == 'function') {
window.history.pushState({}, "Hide", "http://localhost/join/prog/ex.php");
}
</script>
Ou en utilisant une solution backend utilisant une session par exemple;
<?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..
}
RÉPONSE SIMPLE
Placez-le simplement en haut du fichier pour que les requêtes GET disparaissent de la barre d'URL du navigateur après le chargement.
<script>
if(typeof window.history.pushState == 'function') {
window.history.pushState({}, "Hide", '<?php echo $_SERVER['PHP_SELF'];?>');
}
</script>
je suppose qu'après avoir appelé l'URL que vous voulez rediriger vers le fichier ex.php, mais cette fois sans aucun paramètre . essayez d'utiliser le code suivant dans 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!";
}
?>
voici ce que tu as fait juste rediriger la page vers la même page sans vérifier si un paramètre est présent dans la chaîne de requête. le code vérifie intelligemment la présence de paramètres, id tous les paramètres sont là, il sera redirigé vers ex.php sinon il affichera "Bonjour aucun paramètre présent!" chaîne!
Si vous utilisez Apache, envisagez d'utiliser un fichier .htaccess avec mod_rewirte. Ici un quickstart. Je pense que ce résultat peut être obtenu sur IIS aussi bien avec le fichier web.config