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 :
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
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>
Merci d'avance pour votre aide ! J'en aurai bien besoin
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); ?>
Partager