[AJAX] Déconnexion en fin de session
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:
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);
} |