Bonjour à tous,

J'ai un petit probleme que j'ai partielement résolu mais ma slution me semble plus du bricolage.

J'ai deux page
page1.php
page2.php

et un module
module.php

Dans mes deux pages j'ai un
Depuis ma page1.php je fait appelle à ce module via un Et la tout marche bien.

Cependant dans ma deuxième page, je fais appelle à mon module via xmlhttrequest, comme ceci:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
function getXhr(){
	//Création de l'objet XmlHttpRequest
	var xhr = null; 
	if(window.XMLHttpRequest) // Firefox et autres
		xhr = new XMLHttpRequest(); 
	else if(window.ActiveXObject){ // Internet Explorer 
		try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	else { // XMLHttpRequest non supporté par le navigateur 
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
		xhr = false; 
	}
	return xhr;
}
 
function extract_price_from_db(){
	var xhr = getXhr();
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = function(){
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById('id-tarif-display').innerHTML = leselect;
			deroulant();
 
		}
	}
 
	// Ici on va voir comment faire du post
	xhr.open("POST","xmlhttprequest/module.php",true);
	// ne pas oublier ça pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	// ici, l'id de l'auteur
	sel = document.getElementById('id-tarif');
	prices = sel.options[sel.selectedIndex].value;
	xhr.send("prices="+prices);
}
Ca marche bien jusqu'a j'insère des variable de session dans ce module.
En fait dans ce module, il n'y a pas de session_start().
Si ca marche dans la page 1 c'est qu'il est "inclu" dans cette page.

Ce qui n'est pas le cas dans la page 2.

Alors pour remédier à ce problème, j'ai mis, dans mon module ceci
Comme-ceci, quand mon module est chargé depuis la page2, les variable de session du module sont bien "utilisable".

Mais quand je charge ma page1.php, il y a un message d'avertissement si je ne met pas le @, car session_start() est déjà déclaré dans ma premiere page. Donc il y a deux session_strat(), ce qui n'est pas possible.

Cependant, j'aime pas trop le @, car ca ne fait que de cacher le message d'alarme.

N'y-a-il pas une solution de tester si session_start() a déjà été exécuté?

Un truc du genre
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
if(!isset(session_start())) session_start();

Merci pour vos idées