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