2017-07-21 1 views
0

J'ai créé un bouton sur mon site Wordpress qui permet à mes utilisateurs de changer leur emplacement de 'London' à 'Manchester'.Supprimer la chaîne de requête de l'URL dans le cadre d'une fonction PHP

Le bouton utilise $_POST pour démarrer une fonction PHP.

Dans le cadre de cette fonction PHP Je veux 'clean' la URL de la page que l'utilisateur est activé (c.-à-supprimer les chaînes de requête) parce que s'il y a des chaînes de requête quand ils changent d'endroit, il peut gâcher les choses quand ils essayer de utiliser des filtres.

J'ai trouvé un moyen d'obtenir une URL propre

$url=strtok($_SERVER["REQUEST_URI"],'?'); 

Et je pensais que je pourrais être en mesure d'utiliser

wp_redirect($url); 

Pour rafraîchir la page avec un URL propre - mais n » Cela semble fonctionner.

Je pense que la raison pour laquelle cette question est unique est elle est liée à une fonction qui est lancée par une demande $ _POST, plutôt que accroché à une action qui est en cours de chargement. Par conséquent, la page n'est pas entièrement rechargée. J'ai regardé d'autres questions qui me disent comment supprimer la chaîne de requête (ce qui est assez utile) mais ne pas me rediriger à la fin.

Toute pensée très appréciée.

+0

possible duplicate of [Suppression de la chaîne de requête en PHP (parfois basée sur le référent)] (https://stackoverflow.com/questions/4270677/removing-query-str ing-in-php-parfois-based-on-referrer) –

+0

Merci Andy. Je l'avais vu et expliqué pourquoi je pense que ma situation est différente/pourquoi cela ne fonctionne pas. –

+0

pouvez-vous s'il vous plaît montrer votre code ici? – Alice

Répondre

0

Je fini par utiliser Javascript pour actualiser la page, avec une fonction qui a supprimé la chaîne de requête:

<form method="post" onsubmit="setTimeout(function() { window.location = window.location.pathname; }, 150)"> 
    <input type="submit" name="switchman" id="switchman" value="Switch to Manchester" /> 
</form> 
0

Vous pouvez essayer

header("Location: ".$url); 
+0

Merci Thomas, mais ne semble pas fonctionner non plus. –

+0

Voici quelques types de redirections PHP que vous pouvez essayer (certaines que vous pourriez avoir besoin d'utiliser AJAX). https://stackoverflow.com/questions/768431/how-to-make-a-redirect-in-php –

0

S'il vous plaît essayez-

$url = strtok((empty($_SERVER['HTTPS']) ? 'http://' : 'https://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'], '?'); 
+0

https://stackoverflow.com/questions/6768793/get-the-full-url-in-php – mokamoto12