Bonjour,
J'aimerais savoir si on pouvait via la fonction adcslashes mettre un signe d'échappement devant tout les caractères spéciaux... J'ai beau chercher je n'arrive pas à trouver !
J'ai tenter quelque chose mais bof, bof :
Deux problèmes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 addcslashes($chaine, " &é~\"#'{([-|è`_\ç^à@)])=}^¨$-£*µù%!§:/;.,?/*+.<>");
1 : les espaces ne sont pas pris en compte
2 : quand j'ai des chaines de types "Salut !!!" les points d'exclamation ne sont pas échappés...
Après, je ne sais pas si ça vient de la, mais j'ai fait donc une fonction pour "coder" une chaine, et une fonction pour la "décoder" bien sûre :
Et par exemple quand j'ai un script du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 // Encoder une chaine function encoder($chaine){ return addcslashes($chaine, " &é~\"#'{([-|è`_\ç^à@)])=}^¨$-£*µù%§:/;.,?/*+.<>!"); } // Décoder une chaine function decoder($chaine){ return utf8_decode(utf8_encode(nl2br(stripcslashes($test)))); }
impossible d'afficher les informations !!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?php $rq = @mysql_query("SELECT * FROM pages"); while($tab=@mysql_fetch_array($rq)){ echo "\t<tr>\n"; echo "\t\t<td>".decoder($tab['id'])."</td>\n"; echo "\t\t<td>".decoder($tab['nom'])."</td>\n"; echo "\t\t<td>".decoder($tab['titre'])."</td>\n"; echo "\t\t<td><a href=\"?modif=".decoder($tab['id'])."\">Modifier</a></td>\n"; echo "\t\t<td><a href=\"?suppr=".decoder($tab['id'])."\">Supprimer</a></td>\n"; echo "\t</tr>\n"; } ?>
Des idées ? Merci d'avance...
Partager