Page 1 sur 2
Url rewriting avec REQUEST
Posté : 01 mars 2016, 21:14
par yoann38
Salut à tous.
j'ai je cherche à faire un url rewriting
J'ai donc:
RewriteRule ^toutes-les-actualites-([a-z0-9-]+).html$ actu.php?type=$1
Et par exemple dans mon autre page j'ai mon REQUEST que j'organise ainsi:
$h1 .= !empty($_REQUEST['type']) ? ' ' .$agenre[$_REQUEST['type']]: NULL;
Quelque explications :
$_REQUEST['type'] = renvoi un numéro (exemple: 3 , 4 , 5)
Ces numéros ont une valeur attrivué grace à l'array $agenre
Donc si je tape l'url toutes-les-actualites-3.html ( ça marche )
mais si je tape l'url toutes-les-actualites-travaux.html ( ça marche pas) forcément
Il manque un ptit truc, Merci à vous

Re: Url rewriting avec REQUEST
Posté : 01 mars 2016, 21:52
par @rthur
Bonjour,
Et si tu accède à actu.php?type=travaux ça marche ?
Si non, alors ce n'est pas un problème de réécriture mais de ton script actu.php qui ne sait pas traiter la variable que tu lui passes en paramètre
Re: Url rewriting avec REQUEST
Posté : 01 mars 2016, 21:56
par yoann38
Enfait ca m'affiche la page sans traiter la requete en gros
mais je n'ai pas de message d'erreur
Re: Url rewriting avec REQUEST
Posté : 01 mars 2016, 22:21
par yoann38
Enfait tt marche sauf que j'aimerais affiché la valeur de l'array est pas le numéro qui lui est attribué
l'url toutes-les-actualites-3.html marche
mais
toutes-les-actualites-travaux.html marche pas
Je pense qu'il faut faire quelque chose avec l'array $agenre mais je ne sais pas comment faire
...
Re: Url rewriting avec REQUEST
Posté : 01 mars 2016, 23:40
par @rthur
Il faut avant toute chose, que tu modifies ton code pour que /actu.php?type=travaux fonctionne et affiche la page comme attendue.
Re: Url rewriting avec REQUEST
Posté : 02 mars 2016, 00:05
par yoann38
je veut comprendre car
J'ai le lien qui permet de m'envoyé sur la page qui marche bien puisque ca filtre correctement ma requete
$h1 .= !empty($_REQUEST['genre']) ? ' <a href="toutes-les-actu-'.$_REQUEST['genre'].'.html">' .$agenre[$_REQUEST['genre']].'</a>': NULL; // Le type de sortie
je clique sur le lien ca filtre correctement et l'url que j'ai avec ca est:
http://monsite.fr/toutes-les-actu-23.html ( ce qui correspond au code )
il faut que je place en gros
$agenre[$_REQUEST['genre']] à la place de .$_REQUEST['genre'] pour avoir la valeur et non le numéro mais à ce moment l'url qui devrai du coup être
http://monsite.fr/toutes-les-actu-travaux.html
ne marche pas
Re: Url rewriting avec REQUEST
Posté : 02 mars 2016, 00:09
par or 1
tu as donc besoin de detecter si le paramètre est un entier ou une chaine.
si c'est une chaine, tu parcours ton tableau $agenre pour tester si le paramètre est l'élément du tableau parcouru. si c'est le cas, tu as alors l'id.
http://php.net/manual/fr/control-structures.foreach.php
Re: Url rewriting avec REQUEST
Posté : 02 mars 2016, 08:55
par yoann38
Alors excuse moi. Je débute mais pr le coup bai déjà mon arrayv $agenre . Exemple : 1 => travaux; 2=> service ... Après dans la doc je ne vois pas ce ki peu m'aider pr récupérer la valeur, $key ? Si c ca comment je la récup pr mon url rewrting ds mon htaccess .... merci de votre implication
Re: Url rewriting avec REQUEST
Posté : 03 mars 2016, 21:36
par yoann38
Je reviens vers vous car malheuresement je n'arrive pas à avancer.
l'url du type
htacces:
RewriteRule ^toutes-les-actu-([A-Za-z0-9_-]+).html$ sortie.php?loisir=$1
ca marche très bien avec la requete suivante
$sql .= !empty($_REQUEST['loisir']) ? ' AND `loisirs`.`id_type_loisirs` = "'.$_REQUEST['loisir'].'"' : NULL;
du coup si je test l'url suivante c'est ok ca marche comme je veux, je cherche juste avoir l'url sous la forme avec la valeur de l'array et pas avec le numéro comme actuellement et je galère grave
http://monsite.fr/toutes-les-actu-4.html ( ca marche )
le but est de remplacer 4 par travaux par exemple grace à mon array
$agenre = array ( 2 => 'travaux', 3 => 'couture', .....
Je m'arrache le peu de cheveux qu'il me reste ....
Re: Url rewriting avec REQUEST
Posté : 03 mars 2016, 21:54
par @rthur
Je n'ai toujours pas compris ta réponse à ma question que je t'ai déjà posé 2 fois :
Est-ce que quand tu accèdes à l'url
http://www.tondomaine.com/actu.php?type=travaux , tu as bien la page voulue ?
Oui ou Non ?
C'est pourtant simple comme question...
Re: Url rewriting avec REQUEST
Posté : 03 mars 2016, 22:00
par yoann38
Non ça ne marche pas....
Vous m'avez écrit:
traiter la variable que tu lui passes en paramètre
Ca marche quand on met le chiffre dans l'url c'est que ca marche nan ?
Re: Url rewriting avec REQUEST
Posté : 03 mars 2016, 22:10
par yoann38
Ca ressemble à ca mon code si ça peut aider:
Dans l'ordre
Requete par région
Requete par département
Requete par loisir
$sql .= !empty($_REQUEST['region']) ? ' AND `regions`.`url` = "'.$_REQUEST['region'].'"' : NULL;
$sql .= !empty($_REQUEST['departement']) ? ' AND `loisirs`.`id_departements` = '.$_REQUEST['departement'] : NULL;
$sql .= !empty($_REQUEST['loisir']) ? ' AND `loisirs`.`id_type_loisirs` = "'.$_REQUEST['loisir'].'"' : NULL;
Re: Url rewriting avec REQUEST
Posté : 03 mars 2016, 22:14
par @rthur
Non ça ne marche pas....

Donc il faut déjà que tu fasses fonctionner cette page avant toute chose et avant de t'occuper de l'url rewriting.
Regarde à quel endroit de la page actu.php est utilisé la variable type (celle qui passe en paramètre de /actu.php?type=travaux )
Jusqu'à présent elle ne prenait qu'un id (et ça fonctionnait) et maintenant tu veux lui mettre du texte.
Donc il faut que tu regardes comment elle est utilisée et que tu fasses les modifications nécessaires, soit en changeant une requête SQL si tu as la correspondance 4 <=> travaux dans une table SQL, soit en intégrant un tableau de correspondance en dur en PHP.
Re: Url rewriting avec REQUEST
Posté : 04 mars 2016, 08:21
par yoann38
Il s'agit de cette requete la:
$sql .= !empty($_REQUEST['loisir']) ? ' AND `loisirs`.`id_type_loisirs` = "'.$_REQUEST['loisir'].'"' : NULL;
Re: Url rewriting avec REQUEST
Posté : 04 mars 2016, 09:51
par @rthur
Il s'agit de cette requete la:
$sql .= !empty($_REQUEST['loisir']) ? ' AND `loisirs`.`id_type_loisirs` = "'.$_REQUEST['loisir'].'"' : NULL;
Tu vois marqué "type" dans cette ligne ?