Bonjour,

Je fais passer un paramètre en GET d'une page P1 à une autre P2 pour un traitement.

Du coup, j'utlise la fonction rawurlencode(paramètre) avant de l'accoler à l'URL de la nouvelle page où on a besoin de ce paramètre (afin de gérer les accents etc...)
Le traitement se passe bien et on revient à la première page avec ce paramètre sur lequel je fais un decodeURIComponent(parametre) en Javascript afin de le décoder et pouvoir le remettre dans un formulaire.

Les informations passant en clair étant donné qu'au tout début qu'avant le premier rawurlencode, je ne fais pas de htmlentities, ce n'est pas trop sécurisé.

Le problème se pose lorsque je veux sécuriser la chose et que je souhaite utiliser htmlentities avant de faire l'encodage du paramètre avec rawurlencode.

Exemple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
$parametre = tèst
$param = rawurlencode($parametre)
me donne

Puis, après décodage au niveau du JS avec

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
var param = decodeURIComponent(parametre)
J'obtiens bien:

Maintenant, je veux sécuriser la chose avec htmlentities.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
$param = htmlentities($parametre)
$paramnew = rawurlencode($parametre)
J'obtiens:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
t%26Atilde%3B%26uml%3Bst
Ensuite, avec la fonction JS que j'ai trouvé sur StackOverFlow qui est censé fonctionner:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
function htmldecode(s){
		window.HTML_ESC_MAP = {
		"nbsp":" ","iexcl":"¡","cent":"¢","pound":"£","curren":"¤","yen":"¥","brvbar":"¦","sect":"§","uml":"¨","copy":"©","ordf":"ª","laquo":"«","not":"¬","reg":"®","macr":"¯","deg":"°","plusmn":"±","sup2":"²","sup3":"³","acute":"´","micro":"µ","para":"¶","middot":"·","cedil":"¸","sup1":"¹","ordm":"º","raquo":"»","frac14":"¼","frac12":"½","frac34":"¾","iquest":"¿","Agrave":"À","Aacute":"Á","Acirc":"Â","Atilde":"Ã","Auml":"Ä","Aring":"Å","AElig":"Æ","Ccedil":"Ç","Egrave":"È","Eacute":"É","Ecirc":"Ê","Euml":"Ë","Igrave":"Ì","Iacute":"Í","Icirc":"Î","Iuml":"Ï","ETH":"Ð","Ntilde":"Ñ","Ograve":"Ò","Oacute":"Ó","Ocirc":"Ô","Otilde":"Õ","Ouml":"Ö","times":"×","Oslash":"Ø","Ugrave":"Ù","Uacute":"Ú","Ucirc":"Û","Uuml":"Ü","Yacute":"Ý","THORN":"Þ","szlig":"ß","agrave":"à","aacute":"á","acirc":"â","atilde":"ã","auml":"ä","aring":"å","aelig":"æ","ccedil":"ç","egrave":"è","eacute":"é","ecirc":"ê","euml":"ë","igrave":"ì","iacute":"í","icirc":"î","iuml":"ï","eth":"ð","ntilde":"ñ","ograve":"ò","oacute":"ó","ocirc":"ô","otilde":"õ","ouml":"ö","divide":"÷","oslash":"ø","ugrave":"ù","uacute":"ú","ucirc":"û","uuml":"ü","yacute":"ý","thorn":"þ","yuml":"ÿ","fnof":"ƒ","Alpha":"Α","Beta":"Β","Gamma":"Γ","Delta":"Δ","Epsilon":"Ε","Zeta":"Ζ","Eta":"Η","Theta":"Θ","Iota":"Ι","Kappa":"Κ","Lambda":"Λ","Mu":"Μ","Nu":"Ν","Xi":"Ξ","Omicron":"Ο","Pi":"Π","Rho":"Ρ","Sigma":"Σ","Tau":"Τ","Upsilon":"Υ","Phi":"Φ","Chi":"Χ","Psi":"Ψ","Omega":"Ω","alpha":"α","beta":"β","gamma":"γ","delta":"δ","epsilon":"ε","zeta":"ζ","eta":"η","theta":"θ","iota":"ι","kappa":"κ","lambda":"λ","mu":"μ","nu":"ν","xi":"ξ","omicron":"ο","pi":"π","rho":"ρ","sigmaf":"ς","sigma":"σ","tau":"τ","upsilon":"υ","phi":"φ","chi":"χ","psi":"ψ","omega":"ω","thetasym":"ϑ","upsih":"ϒ","piv":"ϖ","bull":"•","hellip":"…","prime":"′","Prime":"″","oline":"‾","frasl":"⁄","weierp":"℘","image":"ℑ","real":"ℜ","trade":"™","alefsym":"ℵ","larr":"←","uarr":"↑","rarr":"→","darr":"↓","harr":"↔","crarr":"↵","lArr":"⇐","uArr":"⇑","rArr":"⇒","dArr":"⇓","hArr":"⇔","forall":"∀","part":"∂","exist":"∃","empty":"∅","nabla":"∇","isin":"∈","notin":"∉","ni":"∋","prod":"∏","sum":"∑","minus":"−","lowast":"∗","radic":"√","prop":"∝","infin":"∞","ang":"∠","and":"∧","or":"∨","cap":"∩","cup":"∪","int":"∫","there4":"∴","sim":"∼","cong":"≅","asymp":"≈","ne":"≠","equiv":"≡","le":"≤","ge":"≥","sub":"⊂","sup":"⊃","nsub":"⊄","sube":"⊆","supe":"⊇","oplus":"⊕","otimes":"⊗","perp":"⊥","sdot":"⋅","lceil":"⌈","rceil":"⌉","lfloor":"⌊","rfloor":"⌋","lang":"⟨","rang":"⟩","loz":"◊","spades":"♠","clubs":"♣","hearts":"♥","diams":"♦","\"":"quot","amp":"&","lt":"<","gt":">","OElig":"Œ","oelig":"œ","Scaron":"Š","scaron":"š","Yuml":"Ÿ","circ":"ˆ","tilde":"˜","ndash":"–","mdash":"—","lsquo":"‘","rsquo":"’","sbquo":"‚","ldquo":"“","rdquo":"”","bdquo":"„","dagger":"†","Dagger":"‡","permil":"‰","lsaquo":"‹","rsaquo":"›","euro":"€"};
		if(!window.HTML_ESC_MAP_EXP)
			window.HTML_ESC_MAP_EXP = new RegExp("&("+Object.keys(HTML_ESC_MAP).join("|")+");","g");
		return s?s.replace(window.HTML_ESC_MAP_EXP,function(x){
			return HTML_ESC_MAP[x.substring(1,x.length-1)]||x;
		}):s;
	}
je reviens sur la première page mais avec cette valeur pour le paramètre:

Connaissez vous pourquoi j'obtiens ce résultat? N'y a t'il rien de déjà existant qui pourrait m'aider à régler ce problème et faire que j'arrive à faire ce que j'aimerais.

Je vous remercie par avance,