Bonjour,

J'ai un site qui utilise Ajax sur la plupart des actions des utilisateurs.
Le serveur php, au bout d'un certain temps d'inactivité, supprime la variable de SESSION, donc l'utilisateur est déconnecté.

Ce que je souhaite, c'est lors d'une action de l'utilisateur, vérifier s'il est encore connecté ou pas et afficher un message en conséquence.

Mais mon code renvoie undefined. Problème de délai de réponse ?

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
var xhr = null;
var xhr_session = null;
function getXhr(id_utilisateur, div_deconnexion) {
	if (id_utilisateur == -1) {//on vérifie si on vient de la page de connexion, auquel cas il n'est pas nécessaire de vérifier si l'utilisateur est encore connecté (puisqu'il se connecte à l'instant !)
		getXhr_session();
	} else {
		test = get_session(div_deconnexion);
		alert('test : ' + test);                          <------ undefined
		if (get_session(div_deconnexion) == 'true') {//sinon, pour chaque appel à ajax, on vérifie si l'utilisateur est connecté
			alert('coucou3');
			getXhr_session();
		}
	}
}

function getXhr_session() {
	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;
	}
}

function get_session(div_deconnexion) {
	var retour = "retour";
	if(window.XMLHttpRequest) {// Firefox et autres
		xhr_session = new XMLHttpRequest();
	} else if(window.ActiveXObject) {// Internet Explorer 
		try	{
			xhr_session = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			xhr_session = new ActiveXObject("Microsoft.XMLHTTP");
		}
	} else {// XMLHttpRequest non supporté par le navigateur 
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
		xhr_session = false;
	}
	xhr_session.onreadystatechange = function() {
		if(xhr_session.readyState == 4 && xhr_session.status == 200) {
			response = xhr_session.responseText;
			// alert ('coucou10 - ' + response);
			if (response == 'nok') {
				alert ('coucou11');
				div_deconnexion.innerHTML = "<center>Vous avez &eacute;t&eacute; d&eacute;connect&eacute;(e) automatiquement.<p>Pour vous reconnecter, cliquez ici : <p><a href=\"http://dsi-support.dsic.mi\">Connexion à DSI</a></center>";
				retour = false;
			} else {
				// alert ('coucou12');
				retour = true;
			}
			alert(retour);
			return retour;
		}
	};
	xhr_session.open("POST","Script/Admin/Get_Session.php",true);
	xhr_session.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr_session.send(null);
}