Bonjour,
Je voudrais effectuer une requête update SQL toutes les secondes sur mon site web lorsque le visiteur est sur une page en particulier. Cette requête met à jour la base de données avec l'heure courante, ce qui me permet ensuite d'avoir le temps de connexion sur cette page.

Pour cela, j'ai pensé utiliser Ajax, mais c'est la première fois que j'en fais.
Je vous monter ce que j'ai fais, j'aimerais savoir ce qui cloche car rien n'est mis à jour dans ma base de données.

code Ajax :
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
 
<script language="javascript">
			function request(url,cadre) {
					var XHR = null;
 
					if(window.XMLHttpRequest) // Firefox
							XHR = new XMLHttpRequest();
					else if(window.ActiveXObject) // Internet Explorer
							XHR = new ActiveXObject("Microsoft.XMLHTTP");
					else { // XMLHttpRequest non supporté par le navigateur
							alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
							return;
					}
 
					// envoie de la requête, methode GET et de l'url
					XHR.open("POST",url, true);
					xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 
					// on guette les changements d'état de l'objet
					XHR.onreadystatechange = function attente() {
 
						// l'état est à 4, requête reçu !
						if(XHR.readyState == 4) {
							// ecriture de la réponse
							document.getElementById(cadre).innerHTML = XHR.responseText;
						}
 
					}
					XHR.send(null);         // le travail est terminé
					return;
			}
 
			setInterval( "request('script_update_stats_connexions.php','xmlhttp')", 1000);
			</script>
et le code PHP qui fait la requete :
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
 
<?php
//header("Content-Type: text/plain"); // Utilisation d'un header pour spécifier le type de contenu de la page. Ici, il s'agit juste de texte brut (text/plain).
 
function tableConnexion(){
        $annee=date('Y');
        if ($annee%2 == 1){
                $annee=1;
        }
        else{
                $annee=0;
        }
        $mois=date('m');
        $tableConnexion='connexionsan'.$annee.'mois'.$mois;
                
        return $tableConnexion;
}
 
$tableConnexion=tableConnexion();
$nouvelId=$_SESSION['nouvelId'];
$finConnexion=date('Y-m-d H:i:s');
 
$requeteUpdate = "UPDATE stats_connexions.$tableConnexion SET duree='$finConnexion' WHERE idconnexion='$nouvelId'";
mysql_query($requeteUpdate);
                                
?>
Merci d'avance pour votre aide ! J'en aurai bien besoin