// // // - MISE A JOUR DU COMPTEUR ET AFFICHAGE DU NOMBRE DE CONNECTES // Insérez le code Javascript suivant dans votre page : // // // // si vos fichiers ne sont pas dans le même repertoire : // // // NB : TOUTES LES PAGES DE VOTRE SITE DOIVENT CONTENIR // UN DES 2 CODES JAVASCRIPT CI-DESSUS, ENTRE LES BALISES ET // // MODIFIEZ LES VARIABLES DE LA PARTIE "VARIABLES PARAMETRABLES" // // SOUS LINUX/UNIX, IL EST POSSIBLE QUE LES FICHIERS DE DONNEES "z_online.txt" // ET DE CONSERVATION DU LOG "z_log.txt" NE PUISSENT PAS ETRE CREE PAR // CE SCRIPT POUR DES RAISONS DE DROIT. DANS CE CAS, EFFECTUEZ LES COMMANDES // SUIVANTES DANS LE MEME REPERTOIRE QUE CE SCRIPT : // touch z_online.txt z_online.txt // chmod 777 z_online.txt z_log.txt // // Philippe COLOMBANI // zerofil@ifrance.com // PS: IAORANA à tous les Euromaster de TAHITI et bisous à Miss Sandra. // //*************************************************************************************************** //Variables contenant le nom des fichiers texte et leur path //autre exemple : $z_online="admin/online_users.txt $z_online="z_online.txt"; $z_total="z_total.txt"; $z_log="z_log.txt"; //Temps en seconde ou un utilisateur est considéré comme connecté //ici 300s = 5min $laps=300; // temps actuel en secondes et date. $now=time(); $date=date('d/m/Y-H:i:s'); // date d'expiration en secondes $expire=$now+$laps; // initialisation du compteur $cpt=0; if ($action=="show"||$action=="hide") { //*************************************************************************************************** // LECTURE DU FICHIER DATA // CREATION D'UN TABLEAU RENFERMANT LES // UTILISATEURS CONNECTES SELON LEUR IP ET/OU LA DUREE // DE LEUR CONNECTION (EXPIRE) //*************************************************************************************************** if(file_exists($z_online)) { $fp=fopen("$z_online","r"); while (!feof ($fp)) { $buffer = fgets($fp, 4096); list ($ip_tmp, $expire_tmp)=split('\|',$buffer); if($ip_tmp!=$REMOTE_ADDR && $expire_tmp>$now) { $fichier[]="$ip_tmp|$expire_tmp"; } $tabtot = count($fichier); } flock($fp, 3); fclose ($fp); } else{echo"Le fichier $z_online n'existe pas !";} //*************************************************************************************************** // ECRITURE DU CONTENU DU TABLEAU FICHIER[] // DANS DATA.TXT EFFACE LORS DE SON OUVERTURE (w+) //*************************************************************************************************** if(file_exists($z_online)) { $fp=fopen("$z_online","w+"); if(is_array($fichier)) { while (list ($key, $val) = each ($fichier)) { if($now<$expire_tmp){} else{fputs($fp,"$val");} } } fputs($fp,"$REMOTE_ADDR|$expire\r\n"); flock($fp, 3); fclose ($fp); }else{echo"Le fichier $z_online n'existe pas !";} //*************************************************************************************************** // LECTURE + ECRITURE DU TOTAL //*************************************************************************************************** $new_z_log=""; if(file_exists($z_total)) { $fp=fopen("$z_total","r+"); while (!feof ($fp)) { $buffer = fgets($fp, 4096); list ($cpt_tmp, $date_tmp)=split('\|',$buffer); $cpt = $cpt_tmp + 1; $new_z_log="$cpt|$date"; } fseek($fp,0); fputs($fp, "$new_z_log"); flock($fp, 3); fclose($fp); } //*************************************************************************************************** // LECTURE + ECRITURE DU LOG //*************************************************************************************************** $new_z_log=""; if(file_exists($z_log)) { $fp=fopen("$z_log","a+"); while (!feof ($fp)) { $buffer = fgets($fp, 4096); list ($cpt_tmp, $page_tmp,$date_tmp)=split('\|',$buffer); //Décommentez les deux lignes suivantes sivous désirez utiliser le fichier //z_log.txt comme compteur z_total et ainsi éliminer le fichier z_total.txt //$tot[]="$ip_tmp|$expire_tmp"; } //$z_totalz_log = count($tot); $new_z_log="$REMOTE_ADDR|$page|$date"; fseek($fp,0); fputs($fp, "$new_z_log \r\n"); flock($fp, 3); fclose($fp); } //*************************************************************************************************** // AFFICHAGE DU NOMBRE DE CONNECTES //*************************************************************************************************** $tabtot = $tabtot + 1; if($action!="hide") {echo "document.write('ã¹¢³Ð¹ÕéÁÕ¤¹ÍèÒ¹¡Ãдҹʹ·¹ÒÊÒÁà¡ÅÍÍÂÙè $tabtot ¤¹ $z_totalz_log');";} } else if($action==""){echo"document.write('Variable 'hide' ou 'show' non envoyées !');";} ?>