Comment passer plusieurs varibales dans une url

WRInaute discret
Bonjour,

J'ai une url de cette forme: annonce.php?sous_categ=berline-coupe-citadine&Region=midi-pyrenees&ID_region=14&ID_sous_categ=1&ID_categ=2

Comment faire la redirection avec htaccess pour obtenir une url de cette forme:

annonce-berline-coupe-citadine+midi-pyrenees-1412.html

sachant que :

- je veux récupérer le contenu des variables passer dans l'url par la méthode $_GET

Exemple :
Si j'écris $_GET['sous_categ'] elle doit afficher "berline-coupe-citadine"
Si j'écris $_GET[Region'] elle doit afficher "midi-pyrenees"
Si j'écris $_GET['ID_region'] elle doit afficher "14"
Si j'écris $_GET['ID_sous_categ'] elle doit afficher "1"
Si j'écris $_GET['ID_categ'] elle doit afficher "2"

Est ce que ca est possible?

Cdt.
 
WRInaute accro
si tu n'est pas expert en expressions régulières, part sur une construction plus simple :
annonce-berline-coupe-citadine,midi-pyrenees,1412.html par exemple
 
WRInaute discret
e-kiwi a dit:
si tu n'est pas expert en expressions régulières, part sur une construction plus simple :
annonce-berline-coupe-citadine,midi-pyrenees,1412.html par exemple

merci,

Oui, mais comment récupérer ces valeurs dans ce cas?

Si j'écris $_GET['ID_region'] elle doit afficher "14"
Si j'écris $_GET['ID_sous_categ'] elle doit afficher "1"
Si j'écris $_GET['ID_categ'] elle doit afficher "2"

c'est que m’intéresse vraiment c'est de récupérer les contenus de ces trois variables ('ID_region,'ID_sous_categ','ID_categ'), en s'enfou pour les restes.
 
WRInaute accro
La soution que j'ai adopté sur qlm :

1 - quel que soit le nombre de variable, je les ramene a une seule variable avec des lonngeuru fixe concaténée (exemple 00100300030005 (pour 1 3 3 5).
2 - Mes urls sont de la forme : page-blabla-bla-bla-00100300030005.php

Du coup je recupere avec un seul get :

blabla-bla-bla-00100300030005

et la juste un explode sur "-" et la derniere ligne du tableau ce sont mes parametres .... qu'ils soit 3 ou 25 !

Avantage : le rewriting est ultra simple quelle que soit la page :

RewriteRule ^liste-([a-zA-Z0-9-]+)\.php$ liste.php?zeparam=$1 [L]
RewriteRule ^palmares-([a-zA-Z0-9-]+)\.php$ palmares.php?zeparam=$1 [L]
RewriteRule ^fiches-([a-zA-Z0-9-]+)\.php$ fiches.php?zeparam=$1 [L]
RewriteRule ^notations-([a-zA-Z0-9-]+)\.php$ notations.php?zeparam=$1 [L]

Avantage 2 : je peux oter/ajouter des parametres sans avoir a retoucher le rewriting
 
WRInaute discret
Zecat a dit:
La soution que j'ai adopté sur qlm :

1 - quel que soit le nombre de variable, je les ramene a une seule variable avec des lonngeuru fixe concaténée (exemple 00100300030005 (pour 1 3 3 5).
2 - Mes urls sont de la forme : page-blabla-bla-bla-00100300030005.php

Du coup je recupere avec un seul get :

blabla-bla-bla-00100300030005

et la juste un explode sur "-" et la derniere ligne du tableau ce sont mes parametres .... qu'ils soit 3 ou 25 !

Avantage : le rewriting est ultra simple quelle que soit la page :

RewriteRule ^liste-([a-zA-Z0-9-]+)\.php$ liste.php?zeparam=$1 [L]
RewriteRule ^palmares-([a-zA-Z0-9-]+)\.php$ palmares.php?zeparam=$1 [L]
RewriteRule ^fiches-([a-zA-Z0-9-]+)\.php$ fiches.php?zeparam=$1 [L]
RewriteRule ^notations-([a-zA-Z0-9-]+)\.php$ notations.php?zeparam=$1 [L]

Avantage 2 : je peux oter/ajouter des parametres sans avoir a retoucher le rewriting


merci pour votre réponse,

Je comprend bien votre idée, mais comme vous voyez on a beaucoup utilisé les 000 dans ce cas on peut tt simplement écrire
blabla-bla-bla-1-3-3-5 et explode fait l'affaire pour recuperer (1 , 3,3,5)

RewriteRule ^blabla-([-,+,a-zA-Z0-9]+).html$ /notations.php?zeparam=$1 [L]

Bon,dans notre cas je crois que c'est impossible de récupérer chaque valeur à part par GET .

Cdt.
 
WRInaute accro
et non ! parce que tu ne peux pas faire la différence entre les - qui font partis du bbla et les - des parametres sauf a imposer un nombre fixe de paramètres ... c'ets pour me simplifier la fiche que j'ai mis des lg fixes ... quel que soit le cas et les contenu ma derniere ligne d el'explode, c'est mes param ... donc accès immediat. alors que dans ce que tu decrits il te faut partir du bas du tableau et remonter pour chopper les parametres un à un ...

idem pour isoler le bla bla d'un coté et les parametres de l'autre ... le bla bla ppouvant contenir un nombre nom previsibles de "-"
 
WRInaute accro
e-kiwi a dit:
si tu n'est pas expert en expressions régulières, part sur une construction plus simple :
annonce-berline-coupe-citadine,midi-pyrenees,1412.html par exemple

Eviter à tout prix les virgules. Pour les avoir utilisées dans certains sites, je sais qu'elles sont mal lues / comprises sur certains forums
 
WRInaute accro
annonce.php:
PHP:
<span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br /></span><span class="syntaxkeyword">list(</span><span class="syntaxdefault">$sous_categ</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $region</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $id_region</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $id_sous_categ</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $id_categ</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> explode</span><span class="syntaxkeyword">(</span><span class="syntaxstring">','</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'url'</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">'sous_categ: '</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$sous_categ</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'<br />'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">'region :'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$region</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'<br />'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">'id_region :'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$id_region</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'<br />'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">'id_sous_categ :'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$id_sous_categ</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'<br />'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">'id_categ :'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$id_categ</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'<br />'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">?><br /></span></span>
Sans rewrite: annonce.php?url=berline-coupe-citadine,midi-pyrenees,14,1,2

Rewrite:
PHP:
<span class="syntaxdefault"><br />RewriteEngine on<br />RewriteRule </span><span class="syntaxkeyword">^</span><span class="syntaxdefault">annonce</span><span class="syntaxkeyword">-(.+).</span><span class="syntaxdefault">html$ annonce</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">php</span><span class="syntaxkeyword">?</span><span class="syntaxdefault">url</span><span class="syntaxkeyword">=$</span><span class="syntaxdefault">1 </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">L</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault"> </span>
Ce qui donne: annonce-berline-coupe-citadine,midi-pyrenees,14,1,2.html

Et ça affiche bien:
Code:
sous_categ: berline-coupe-citadine
region :midi-pyrenees
id_region :14
id_sous_categ :1
id_categ :2
 
WRInaute discret
Nickel,

mais je crois qu'il faut éviter d’utiliser le "," parce que ne sont pas bien vu par google, parcontre on peut dans ce cas remplacer "," par "+" c'est plus mieux .

Que pensez vous?

Cdt.
 
WRInaute accro
mikaweb2011 a dit:
Nickel,

mais je crois qu'il faut éviter d’utiliser le "," parce que ne sont pas bien vu par google, parcontre on peut dans ce cas remplacer "," par "+" c'est plus mieux .

Que pensez vous?

Cdt.

Google s'en fout. En revanche, dans la spec html, ce n'est pas un caractère "normal" pour les url (comme le -, le _ ou le +) ce qui fait que certains forums / cms / etc peuvent couper l'url au moment de la virgule.
 
Discussions similaires
Haut