Bonjour !

J'ai un script qui met à jour automatiquement le statut du membre en ligne suivant un certain temps d'inactivité. Ma fonction testerActivite() fonctionne très bien, cependant je n'arrive pas à mettre à jour le statut en BDD via Ajax :/

Pouvez-vous m'aidez svp ?

Voici mon code :

header.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
 
<script type="text/javascript" src="<?php echo ROOTPATH; ?>/js/measure_activity.js"></script>
    </head>
 
    <body onload="refreshChat();" onkeydown="activite_detectee = true;" onmousemove="activite_detectee = true;"> 
		<div id="page">
		<div id="statut">
		<?php
                        if(isset($_SESSION['id']))
                        {
                                if(isset($_GET['statut']))
                                {
                                        $statut = $_GET['statut'];
                                        $query = $bdd->prepare('INSERT INTO online(online_status) VALUES(?) WHERE online_members = ?');
                                        $query->execute(array($statut, $_SESSION['id']));
                                }
                        }
                ?>
		</div>
measure_activity.js :
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
68
69
70
71
72
73
74
75
76
77
78
 
// On déclare et initialise la variable
var activite_detectee = false;
var intervalle = 100;
var temps_inactivite = 0;
var inactivite_persistante = true;
 
function getXMLHttpRequest() {
	var xhr = null;
 
	if (window.XMLHttpRequest || window.ActiveXObject) {
		if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e) {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
		} else {
			xhr = new XMLHttpRequest(); 
		}
	} else {
		alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
		return null;
	}
 
	return xhr;
}
 
function MAJStatut(statut)
{
	var xhr = getXMLHttpRequest();
	xhr.onreadystatechange = function() {
			if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
					document.getElementById('statut').innerHTML = xhr.responseText; // Données textuelles récupérées
			}
	};
 
	xhr.open("GET", "header.php?statut="+statut, true);
	xhr.send(null);
}
 
 
// On crée la fonction qui teste toutes les x secondes l'activité du visiteur via activite_detectee
function testerActivite() 
{
	// On teste la variable activite_detectee
    // Si une activité a été détectée [On réinitialise activite_detectee]
    if(activite_detectee)
	{
		activite_detectee = false;
		temps_inactivite = 0;
        inactivite_persistante = false;
		var statut = "actif";
		MAJStatut(statut);
	}
    // Si aucune activité n'a été détectée
    else 
	{
		// Si l'inactivite est persistante [on met à jour temps_inactivite]
        if(inactivite_persistante) 
		{
			temps_inactivite += intervalle;
		}
        // Si le temps d'inactivite dépasse les 30 secondes
        if(temps_inactivite >= 30000)
		{
			statut = "inactif";
			MAJStatut(statut);
		}
		// Si l'inactivite est nouvelle [on met à jour inactivite_persistante]
		else
		{
			inactivite_persistante = true;
		}
	}
	// On relance la fonction ce qui crée une boucle
	setTimeout('testerActivite();', intervalle);
}