diff --git a/ecrire/balise/menu_lang_ecrire.php b/ecrire/balise/menu_lang_ecrire.php index 099795e794c3b19bc3aa7b0b7a693c6deda216a1..05d8a48f6798f1560f71e9d8d740d2c972c5e3c4 100644 --- a/ecrire/balise/menu_lang_ecrire.php +++ b/ecrire/balise/menu_lang_ecrire.php @@ -50,14 +50,12 @@ function menu_lang_pour_tous($nom, $default) { return ''; $cible = str_replace('&', '&', parametre_url(self( /* racine */ true), 'lang' , '')); # lien a partir de / - $postcomplet = generer_url_action('cookie', 'url='.rawurlencode($cible), true); + $post = parametre_url(generer_url_action('cookie'), 'url', $cible, '&'); return array('formulaire_menu_lang', 3600, array('nom' => $nom, 'url' => $post, - 'cible' => $cible, - 'retour' => $postcomplet, 'langues' => $opt ) ); diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php index 3c6d721264a5c75c0758ebcac12aad2d0fca4f52..0c0bd6b0b452be5ebc8b6d54f4fc91093763734b 100644 --- a/ecrire/inc/filtres.php +++ b/ecrire/inc/filtres.php @@ -2623,8 +2623,8 @@ function form_hidden($action) { $hidden = ''; if (false !== ($p = strpos($action, '?'))) foreach(preg_split('/&(amp;)?/',substr($action,$p+1)) as $c) { - $hidden .= "\n<input name='" . - str_replace('=', "' value='", $c) . + $hidden .= "\n<input name='" . + entites_html(rawurldecode(str_replace('=', "' value='", $c))) . "' type='hidden' />"; } return $hidden; diff --git a/formulaires/formulaire_menu_lang.html b/formulaires/formulaire_menu_lang.html index 93a7f75be7a11fab2b2fd7fa4be3498d363d6cf1..1335b13cc87aab74fb2d66c2fcd67edfceaaae02 100644 --- a/formulaires/formulaire_menu_lang.html +++ b/formulaires/formulaire_menu_lang.html @@ -1,13 +1,10 @@ -<form action='[(#ENV{url})]' - method='post' - style='margin:0px; padding:0px;'> -<div>[ - <input type='hidden' name='url' value='(#ENV{cible})' /> -] <select name='[(#ENV{nom})]' - class='forml' - style='vertical-align: top; max-height: 24px; margin-bottom: 5px; width: 120px;' - onchange="document.location.href='[(#ENV{retour})]&[(#ENV{nom})]='+this.options[this.selectedIndex].value"> - [(#ENV*{langues})] +<form action='#ENV{url}' method='post' style='margin:0px; padding:0px;'> +<div> + [(#ENV{url}|form_hidden)] + <select name='#ENV{nom}' class='forml' + style='vertical-align:top; max-height:24px; margin-bottom:5px; width:120px;' +onchange="document.location.href='#ENV{url}&#ENV{nom}='+this.options[this.selectedIndex].value"> + #ENV*{langues} </select> <noscript> <div style='display:inline;'><input type='submit' value='>>' class='spip_bouton' /></div>