Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Salut
Je ne sais pas pourquoi, j'ai beau tout essayer, je n'arrive pas à utiliser des routes avec le signe + dedans.
Voici un exemple :
$fichesRegexRoute = new Zend_Controller_Router_Route_Regex( "fiches/(\d+)\+(.+)", array( "controller"=>"fiches", "action"=>"fiche", "nom"=>"Madonna" ), array( 1 => 'id', 2 => 'nom' ), 'fiches/%d+%s' );
J'ai bien échapé le plus, mon url se présente de cette forme fiches/150+Justice mais il ne me route pas et me renvoie une erreur 404.
J'ai bien essayé avec d'autres signes pour voir, et = passe par exemple...
Si vous avez une idée je prend
Hors ligne
Je dirais que c'est un problème de http avec le "+" qui est transformé en espace. Si tu veux que PHP recoive bien un "+", il faudrait utiliser le %xx qui va bien.
A+, Philippe
Hors ligne
Hum pas moyen de trouver le %xx qui va bien, une idée de ce que c'est ?
Hors ligne
Tu peux le retrouver :
<?php echo rawurlencode("+"); ?>
=> %2B
ton url devient : fiches/150%2BJustice
A+, Philippe
Hors ligne
Neojick viens de me demander la réponse à ce problème, donc pour avoir un +, qui comme vous l'avez dit devient un espace, il faut mettre un espace dans la regex et un + dans la reverse. Pour moi ça à marché
La remarque, c'est que quand le ZF parse la regex, Apache a déjà tranformé le + en espace !
Hors ligne
Pages: 1