Bonjour.
Je suis actuellement en train de faire une page pour modifier un fichier de configuration.
Je suis confronté à un problème.
Sur ma page principale, j'ai un input de type texte qui contient le texte "\n" (sans les guillemets).
Pour l'afficher, j'utilise htmlentities, pas de problème.
Puis, j'effectue mon enregistrement en utilisant la fonction javascript suivante :
Jusqu'ici tout va bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 function enreg_conf(){ var tab = document.getElementsByTagName('*'); var max = tab.length; var json = ''; for (i=0;i<max;i++){ if (tab[i].value!=undefined && tab[i].className != ''){ if (json != ''){ json = json+',"'+tab[i].className+'":"'+tab[i].value+'"'; }else{ json = json+'"'+tab[i].className+'":"'+tab[i].value+'"'; } //alert(i+' : '+tab[i].value); } } json = '{'+json+'}'; var url = 'traite_config.php'; var pars='json='+json; var myAjax = new Ajax.Updater( 'traite_config', url, { method: 'post', parameters: pars, evalScripts:true }); } </script>
dans mon fichier traite_config.php, je fait en sorte d'afficher ce que je reçoit. Tout s'affiche parfaitement bien, sauf le fameux \n.
J'ai essayé plusieurs choses, et en dernier recours ceci :
mais rien n'y fait.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 if (isset($_POST['json'])){ $json = $_POST['json']; $json = stripslashes($json); $tab = json_decode($json,true); //print_r($tab); $print_conf = ''; if (count($tab)>0){ foreach($tab as $ligne => $v){ $print_conf .= "\"".htmlentities(str_replace("\\","\\\\",addslashes($v)))."\"\r\n"; } } }
à l'affichage de $print_conf, il y a toujours un saut de ligne et pas \n. comment faire pour régler ce problème?
merci d'avance pour vos réponses.
Partager