[RESOLU] Rewritting URL via la méthode GET

Eléphant du PHP | 233 Messages

02 janv. 2017, 16:43

Bonjour à tous et bonne année 2017,

je voudrais savoir comment réécrire l'URL quand je passe par un formulaire méthode GET. Sur les liens je sais faire mais via cette méthode je ne sais pas faire.
Ce que j'utilise sur les liens :
RewriteRule ^search-([a-z0-9_]*)-([0-9]*)\.html$  search.php?genre=$1&annee=$2 [L]
<a href="resultat-action.html">Lien</a>
ou encore
<a href="resultat-action-2000.html">Lien</a>
Voici mon formulaire :
<form class="form-inline text-center" method="get" action="resultat.php">
 						 <div class="form-group">
   						 <select name="genre"  class="form-control"  value="<?php if (isset($_GET['genre'])){echo $_GET['genre'];} ?>">
					<option value="">Trier par genre</option>
					<option value="action" <?php if (isset($_GET['genre']) && $_GET['genre']== "action"){echo "selected";} ?>>Action</option>
					<option value="aventure" <?php if (isset($_GET['genre']) && $_GET['genre']== "aventure"){echo "selected";} ?>>Aventure</option>

etc...
J'espère avoir été suffisamment explicite.
Merci de vos idées

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

02 janv. 2017, 17:23

Si ta question concerne le fait de réécrire une url à la volée en fonction des choix de l'utilisateur dans le formulaire, ça sera en javascript, puisque tu es sur le client et que ni PHP, ni Apache ne sont encore en cours d'exécution,

Mais je pense que si tu nous expliquais ce que tu essayes de faire en prenant un peu de recul, on pourrait surement te proposer d'autres solutions.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 233 Messages

02 janv. 2017, 17:36

Oui c'est ma question, réécrire l'URL en fonction de la sélection de l'utilisateur dans le formulaire.
Merci

Mammouth du PHP | 2703 Messages

02 janv. 2017, 17:42

l'url rewriting, c'est en autre pour que les robots aient de belles urls parlantes, or les robots ne vont pas soumettre le formulaire, donc ils ne verront les urls générées que si un utilisateur fait un lien vers la page de résultat, ce qui est rare, et pas bien grave si l'url n'est pas parfaite. donc pour moi, c'est une perte de temps de faire le changement du champ action du formulaire en javascript.

Eléphant du PHP | 233 Messages

02 janv. 2017, 18:59

Ok, je prends note, je vais laisser comme ça dans ce cas.
Merci de vos explications. :wink:

Eléphant du PHP | 100 Messages

23 févr. 2019, 15:21

Bonjour Tout le Monde,

J'ai un souci pour réécrire une url :

url normale : monsite/menuiserie/index.php?action=Porte Intérieure


J'aimerai une url : monsite/menuiserie/Porte Intérieure

dans .htaccess J'ai essayé ceci mais cela ne fonctionne pas

Code : Tout sélectionner

RewriteEngine on RewriteRule menuiserie/([0-9]+) index.php?action=$1
Merci pour votre aide
Bernard
Modifié en dernier par bernard25 le 23 févr. 2019, 15:25, modifié 1 fois.

Mammouth du PHP | 2703 Messages

23 févr. 2019, 15:25

[0-9] c'est pour des chiffres uniquement. il n'y a pas uniquement des chiffres dans "Porte Intérieure" donc cela ne fonctionne pas. à noter que les espaces et accents dans une url peuvent poser problème.
si vous n'avez que quelque pages, il est possible de coder les redirections en dur.

Eléphant du PHP | 100 Messages

23 févr. 2019, 15:27

Bonjour, non les pages viennent d'un menu qui est dynamique

modification du rewritting :

Code : Tout sélectionner

RewriteRule menuiserie/([a-zA-Z0-9\-]+)-([0-9]+) menuiserie/index.php?action=$1
ne fonctionne pas également