L’encodage URL

Pour pouvoir passer une chaîne de requête comprenant des espaces ou des caractères spéciaux (caractères accentues, en particulier), vous devez d'abord coder la chaîne dans un "style URL". Lorsqu'une chaîne est ainsi codée, tous les caractères posant problème sont remplacés ; les espaces, par exemple, sont remplaces par des signes "+"

Pour coder de cette manière une chaîne de requête, utilisez la méthode adaptée pour chaque technologie serveur. La chaîne "reine des reinettes" est ainsi correctement codée avant d'être passée.

 

Listing 2.16: Codage URL d'une chaîne de requête

ASPJSPPHP
1 <HTML>2 <HEAD><TITLE>Fruits</TITLE></HEAD>3 <BODY>4 <%5 valeur = "reine des reinettes"6 valeur = Server.URLEncode(valeur)7 %>8 <a href="page2b.asp?fruit=<%=valeur%>">Pommes</a>9 </BODY>10 </HTML>1 <HTML>2 <HEAD><TITLE>Fruits</TITLE></HEAD>3 <BODY>4 <%5 String valeur = "reine des reinettes"6 valeur =   java.net.URLEncoder.encode(valeur);7 %>8 <a href="page2b.jsp?fruit=<%=valeur%>">Pommes</a>9 </BODY>10 </HTML>1 <HTML>2 <HEAD><TITLE>Fruits</TITLE></HEAD>3 <BODY>4 <?5 $valeur = "reine des reinettes";6 valeur = urlencode($valeur);7 ?>8 <a href="page2b.php?fruit=<? print $valeur ; ?>">Pommes</a>9 </BODY>10 </HTML>

 

Analyse

Dans le Listing 2.16, la chaîne "reine des reinettes" est codée avant d’être ajoutée a la même de requête. Ligne 5, la chaîne  reine des  reinettes" est affectée à la variable valeur. Ligne 6, la valeur de la variable est codée à l’aide de la méthode adapté à chaque technologies serveur :

ASP : utilise la méthode URLEncode de l'objet Serveur ;

JSP :  utilise la méthode encode de l’objet URLEncoder qui se trouve dans la bibliothèque java.net ;

PHP : utilise la fonction urlencode() ;

Ligne 8, la variable est ajoutée à la chaîne de requête.