Bonjour

J'avais développé un petit utilitaire sur un serveur WEB sous Linux. Tout marchait bien.
On m'a fait transférer mon utilitaire sur un serveur windows. Les problèmes ont commencé dans mes appels ajax. Pour avoir mon codage ISO-8859-15, J'ai du mettre des
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
if (!headers_sent())
 { 
  header('Content-Type: text/xml; charset=ISO-8859-15');
 }
Ça marchait !
On vient de me migrer le serveur sous une version plus ressente...
Cette fois, si je le laisse, les pages refusent de s'afficher. Comme j'ai compris que ça venait de là, je l'ai viré. Mais, maintenant, je récupère des fichiers mal encodé !

Appel de ajax/gr.php qui ne doit pas avoir le header. C'est pour lui que j'avais mis le "test]if (!headers_sent())" pour être sûr de ne pas dupliquer l'entête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<div id='table_sup'>
<?
include "ajax/gr.php";
?>
</div>
Appel de ajax/gr.php qui doit avoir le header sinon les lettres exotiques (accentuée ou autre) ne passent pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
function suppri_gr(id)
{
  if (confirm('Vous voulez bien supprimer le groupe dont l\'Id est ' + id))
  {
   var xhr=cree_xhr('ajax/suppri_gr.php?id='+id);
 
   xhr.onreadystatechange = function()
   {
    if (xhr.readyState == 4 && xhr.status == 200)
     cree_xhr('ajax/gr.php',recup_ajax,'table_sup');
   }
  }
}
Le premier appel est en include dans le code php, le second est en ajax. C'est pour ça que le second a besoin du header et que le premier n'en a pas besoin (en plus il arrive trop tard dans le fichier : après l'entête).

Que tester pour savoir si je dois mettre ou non cet entête ? Quel test faire ?