Qui est en ligne - temps presque réel - javascript et php

Description

Bonjour à tous,

Voici un code que je vien a peine de terminer. Vous connaisser surement des scripts en PHP qui permette de savoir qui est en ligne sur votre site... leur principe est simple:

Lors de laffichage d'une page stoker le ip, la date et l'heure de visionnement du visiteur dans une BD ou autre support comme un fichier texte.Et ensuite faire un script PHP pour qui supprime les entrée IP ayant la date inférieure à la date actuel - X minutes . Ou X est un nombre de minute, ensuite compter le nombre d'entrée IP restante et lafficher.

Bon et bien je suis parti du même principe mais j'ai grandement améliorer le système, le plsu grand problème de c'est script c'est leurs précision... admetton qu nous mettons 5 pour le X cela fait 5 min ou ne sait pas si le visiteur est vraiment en ligne...

Et bien le script que je vous propose règle se problème et passe de 5min à 20 secondes... beaucoup plus précis non ?

Source / Exemple :


<!-- LE RESTE EST DS LE ZIP -->
<!-- LE RESTE EST DS LE ZIP -->
<!-- LE RESTE EST DS LE ZIP -->

<!-- EXEMPLE DE PAGE AVEC CE SCRIPT -->

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>whoIsOnline</title>
<script language="javascript" src="includes/js/whoIsOnline.js"></script>
</head>
<!--
// Système pour connaitre les personne en lignes sur son site... 
// Système améliorer des versions traditionnel, puisque la précision ce compte en secondes
// Programmer par Jocelyn Ménard
// crenox@hotmail.com

fonctionnement:
function start ds le unload du body -> 
PARAMETRE:
1 : le idPath -> C'est le préfix des id des zones... (laisser tel quel)
2 : temps apres lequel l'update de connection est effectué (en secondes)
3 : variable SERVEUR PHP qui est égal au IP du visiteur .. (laisser tel quel)

LE DIV:
Placer le DIV whoIsOnline_zone à l'endroit désirer dans zotre page.. c'est
à cet encdoirt que le nombre de visiteur sera afficher

-->
<body onLoad="start('whoIsOnline',15,'<?php echo $_SERVER['REMOTE_ADDR']; ?>');  onUnload="checkClosePage('<?php echo $_SERVER['REMOTE_ADDR']; ?>');"">
<div id="whoIsOnline_zone" style="border:1px #006699 solid;width:200px;height:15px;padding:4px; background-color:#CCCCCC;"></div>
</body>
</html>

Conclusion :


Le script fonctionne avec XMLHttpRequest qui est maintenant compatible avec plusieurs navigateur.

Le simple ... quelques fonctions javascript gère le temps ecouler, et apres X secondes appelle une page PHP qui actualise la connection indiquant que le visiteur est encore en ligne. (Pour ceux qui ne savent pas comment focntionne XMLHttpRequest c'Est une fonction javascript qui permet d'executer un fichier serveur sans recharger la page et d'en tirer des données)

Il y a aussi un lien a coter du de nombre de visite pour actualiser ce nombre... donc si vous cliquer vs verrez le nombre changer si il y du trafic sur votre site

NOTE: N'oublier pas de modifier les paramètre de connexion a votre BD dans le fichier config.php
NOTE2: La Variable $_SERVER['REMOTE_ADDR'] ne semble pas fonctionner en local, donc pour test local remplacer <?php $_SERVER['REMOTE_ADDR']; ?> par un ip fictif comme: 127.0.0.1 ... c'est aussi une bonne maniere de teste plusieurs connection... avec une plusieurs copies de exemple.php avec un ip différent à la place de <?php $_SERVER['REMOTE_ADDR']; ?>.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.