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 été déconnecté(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); }
Partager