Url rewriting avec REQUEST

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Url rewriting avec REQUEST

Re: Url rewriting avec REQUEST

par yoann38 » 04 mars 2016, 19:29

Re Donc j'ai tout mis à plat avec le vrai code ( j'utilise le code pour plusieur site en fait .... enfin bref la c'est le "vrai" code ).

Donc les requetes:
$sql .= !empty($_REQUEST['loisir']) ? ' AND `loisirs`.`id_type_loisirs` = "'.$_REQUEST['loisir'].'"' : NULL;
J'ai un array sous cette forme:
$aLoisirs = array ( 2 => 'travaux', 3 => 'couture', ...
un autre à l'inverse:
$aLoisirs_inversed = array ( travaux=> '2', couture=> '3',

le htaccess. ou je transforme l'url du moin j'essaie:
RewriteRule ^toutes-les-actu-([A-Za-z0-9_-]+).html$ actu.php?loisir=$1
Et enfin le lien ou j'affiche le loisir et qui permet de filtrer donc:
$h1 .= !empty($_REQUEST['loisir']) ? ' <a href="toutes-les-actu-'.$_REQUEST['loisir'].'.html">' .$aLoisirs[$_REQUEST['loisir']].'</a>': NULL;

Et donc le problème est que l'url marche très bien pour:
http://monsite.fr/toutes-les-actu-2.html

mais ne marche pas pour ( la requete ne s'éxécute pas en gros )
http://monsite.fr/toutes-les-actu-travaux.html

Si je tape l'url http://monsite.fr/toutes-les-actu-travaux.html ( ca fait comme si la requete ne marché pas mais aucun message d'erreur)

Re: Url rewriting avec REQUEST

par @rthur » 04 mars 2016, 09:51

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 ?

Re: Url rewriting avec REQUEST

par yoann38 » 04 mars 2016, 08:21

Il s'agit de cette requete la:
$sql .= !empty($_REQUEST['loisir']) ? ' AND `loisirs`.`id_type_loisirs` = "'.$_REQUEST['loisir'].'"' : NULL;

Re: Url rewriting avec REQUEST

par @rthur » 03 mars 2016, 22:14

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

par yoann38 » 03 mars 2016, 22:10

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

par yoann38 » 03 mars 2016, 22:00

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

par @rthur » 03 mars 2016, 21:54

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

par yoann38 » 03 mars 2016, 21:36

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

par yoann38 » 02 mars 2016, 08:55

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

par or 1 » 02 mars 2016, 00:09

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

par yoann38 » 02 mars 2016, 00:05

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

par @rthur » 01 mars 2016, 23:40

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

par yoann38 » 01 mars 2016, 22:21

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

par yoann38 » 01 mars 2016, 21:56

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

par @rthur » 01 mars 2016, 21:52

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