Bonjour,

j'ai un probleme avec XMLHttpRequest et les sessions.
Lors de l'appel à la page php par le XMLHttpRequest ma session est perdu car je ne peux pas faire de session_start(), car le header est déjà envoyé.
J'ai un warning.

j'ai une premiere page php : onload.php


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
<?php
 
session_start()
 
/*ouverture de session pour forum phpBB*/
    //il est IMPERATIF qu'aucun texte n'ait été affiché avant cette ligne, sinon, vous aurez droit à l'erreur
    //Cannot modify header information - headers already sent by (output started at C:/wamp/www/singles/test.php:5)
    $user->session_begin();
 
 
$_SESSION['login'']= $login;
 
echo"<script type=\"text/javascript\">
<!--
window.onload =  function() {  
 
loadScript();
};
 
-->
</script>";
 
?>


dans ma js fonction.js j'ai XMLHttpRequest

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
28
29
 
 function loadScript(){
var xhr_url=server.php
 var xhr_object = null; // declarationde la variable
 	if(window.XMLHttpRequest){ // Firefox
	 xhr_object = new XMLHttpRequest(); // declaration de lobjet
	 }else if(window.ActiveXObject){ // Internet Explorer
	 xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); // declaration de lobjet
	 }else { // XMLHttpRequest non supporté par le navigateur
	 alert("Your browser does'nt use XMLHTTPRequest objects...");
	 return;
	 }
	  xhr_object.open("POST", xhr_url, true); 
 
		   xhr_object.onreadystatechange = function() { 
		      if(xhr_object.readyState == 4){ 
 
			 		eval(xhr_object.responseText);
 
 
 
			} 
		   } 
 
		   xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
		   var data = "family="+escape(l1.options[index].value)+"&form="+f.name+"&select=list2"; 
 
		   xhr_object.send(data); 
}
la page server.php


Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<?php
 
session_start();
 
echo $_SESSION['login''];
session_write_close(); //-- close session
?>


J'ai un message d'erreur :

Warning: Cannot modify header information - headers already sent by

Car j'ai déjà ouvert une session dans ma page d'origine appelante : onload.php.
Du coup je ne peux pas récupérer les variables de session dans la page php appelée server.php.
Le probleme vient de ce que je ne peux pas mettre de session_start() ou de header() dans ma page php. Car la page d'origine appelante a déjà un header(). Celui du forum phpBB

Comment faire pour avoir les variables de session dans le fichier php appel ?