Aller au contenu

Sujets conseillés

Posté

Bonjour,

Y a-t-il moyen re-writer l'url généré par la méthode GET ou POST d'un formulaire ?

Je m'explique avec un exemple:

J'ai un formulaire avec un champ q que je déclare avec la méthode GET et le lien cherche.php. Il me génère donc une url du type:

www.mondom.com/cherche.php?q=tutu

mais je voudrais plutot, pour être cohérent avec tout mon rewriting:

www.mondom.com/tutu/

Posté

Salut Adn,

A part en "bidouillant" en Javascript pour changer l'URL côté client, il n'existe pas d'autre solution.

Mais dans ce cas, cela ne conviendra pas aux moteurs, ni à ceux qui ont désactivé javascript.

Dan

Posté

Merci Dan,

Je cherchais effectivement une solution non javascript bien sur. Bon tanpis. Cette url fait un peu tache dans l'ensemble du site qui est totalement rewrité mais tanpis.

Posté

Une simple redirection à la soumission de ton formulaire fera l'affaire je pense. Lorsque ton formulaire est soumis, l'envoie se fait vers la page "www.mondom.com/cherche.php?q=tutu" dans cette page correspondant au traitement tu peux simplement effectuer une redirection :

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.mondom.com/".$_GET['q']."/");
exit(); ?>

Il faut exécuter ceci avant tout autre envoi de caractères vers le navigateur (au tout début de ton fichier).

Ensuite tu gères ta réécriture comme tu l'aurais fait si l'utilisateur avait directement tapé l'URL -http://www.mondom.com/tutu/ . Bien entendu si tu veux utiliser uniquement un fichier PHP (cherche.php) pour effectuer cette redirection et la recherche tu peux simplement rajouter un paramètre supplémentaire lorsque fais la réécriture sur lequel tu feras un test conditionnel (if) pour déterminer s'il faut faire la redirection avec header (pour effectuer ensuite la réécriture) ou faut effectuer la recherche et envoyer les résultats (parce que l'utilisateur vient d'être redirigé vers l'URL réécrite). Ou alors tu fais deux fichiers distincts, un pour la redirection avec header vers l'URL réécrite et un pour effectuer la recherche (qui sera la cible de ta réécriture).

J'ai essayé de te décrire le fonctionnement complet, j'espère que je ne t'ai pas trop embrouillé ;)

Posté

C'est clair très TheRec, je vais faire çà de ce pas.

Merci :)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...