Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] Url et paramètres

Posted by Nesswaw on 06/03/2010 09:38

Bonjour,

Je sais pas si c'est un bug ou que c'est moi qui fais une erreur, mais voici mon problème:

Dans mon contrôleur "default", j'ai une action nommé "dl". Dans cette action je récupère un paramètre: "nom".

Dans mon fichier urls.xml j'ai cela:

<url pathinfo="/dl/:nom" module="app" action="default:dl" />

Quand mon paramètre est une simple string: test123, ça fonctionne Mais quand j'ai un paramètre avec slash, ça me renvoie une page 404 : fr/test123

Quelle est mon erreur ?

  [Opened] Url et paramètres

Reply #1 Posted by laurentj on 06/03/2010 09:55

Bonjour,

un paramètre ne peux pas contenir un slash, puisque le slash est justement un séparateur de paramètre, ou plus exactement, un caractère réservé dans les urls.

  [Opened] Re: Url et paramètres

Reply #2 Posted by Nesswaw on 06/03/2010 09:57

Bonjour,

Alors comment je peux faire pour passer un chemin en paramètre ?

Merci

  [Opened] Url et paramètres

Reply #3 Posted by Nesswaw on 06/03/2010 10:10

J'ai trouvé une solution, en modifiant urls.xml

<url pathinfo="/dl" module="app" action="default:dl">
<code>
    <param name="dl" />
</url> </code>

Après j'ai mes url sous forme :

dl?dl=fr/test123

Mais comment faire pour avoir des urls propore dans le ?dl= ???

Merci

  [Opened] Re: Url et paramètres

Reply #4 Posted by ctacat on 06/03/2010 10:32

Je ne sais pas si ça peut marcher pour le slash, mais il y a une technique pour passer des espaces qui consiste à les transformer en un encodage toléré en URL, c'est-à-dire par '%20' (sans les quotes), 20 étant le codage ASCII de l'espace en hexadécimal.

2f étant le code ASCII hexadécimal du slash, j'imagine que si on l'utilise à la place des slashes, ça pourrait marcher... Il suffira à réception du paramètre de retransformer les %2f en / (facile avec str_replace). A essayer (je ne l'ai pas fait moi-même).

Une autre solution pourrait consister à encoder avec uuencode le paramètre, mais ça a comme inconvénients d'allonger d'environ 35 % en moyenne la chaîne de caractères et de rendre alors l'URL non compréhensible en soi, ça peut être génant en fonction du besoin. J'avais pensé au base64 initialement, mais le / est un des caractères utilisé par le base64, donc disqualifié pour cela.

  [Opened] Url et paramètres

Reply #5 Posted by laurentj on 06/05/2010 14:18

Si tu veux avoir des chemins dans les paramètres, c'est donc à toi de parser ou générer les urls. Et donc en fait, tu dois développer un handler.

 
Page
  1. Url et paramètres