Salut à tous,
je suis en train de faire une interface qui permet de lancer des scripts shell sur un serveur.
Pour cela, j'ai besoin de saisir des commandes unix dans un formulaire. Ces commandes contiennent des caractères spéciaux : single quote ', double quotes ", et tout ce qu'une ligne de commande peut contenir comme caractère spéciaux ...
Je récupère donc le contenu du formulaire et le stock dans un champs hidden.
j'ai utilisé la fonction php addslashes mais lorsque je récupère ma variable et que je regarde le source du formulaire (firefox indique certain caractères échappés en rouge), je 'aperçois qu'il y un problème ...
Voici la chaine telle que je la saisie et telle que je souhaite la transmettre au fil des pages :
voici la chaine échappée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part commandeUnix -- -arg 'XX="YY"' -printf '>%mon_format'
et voici ce que je récupère finalement dans une page ultérieure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part commandeUnix -- -arg \'XX=\"YY\"\' -printf \'>%mon_format\'
Code : Sélectionner tout - Visualiser dans une fenêtre à part commandeUnix -- -arg \'XX=\
voici le code php :
voici le source de la page générée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part print "<input type=\"hidden\" name=\"QUERY\" value=\"$QUERY\">\n";
Ma question est donc générale, comment faire pour transmettre une chaine avec des caractères spéciaux dans un champs hidden ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part <input type="hidden" name="QUERY" value="commandeUnix -- -arg \'XX=\"YY\"\' -printf \'>%mon_format\' ">
Après avoir cherché, j'ai essayé la fonction php addslashes mais ce n'est visiblement pas satisfaisant...
merci d'avance,
ben![]()
Partager