Non connecté. Connectez-vous ou devenez membre (gratuit).Recherche rapide :     

Un live counter en php

Souvent sur les sites, on voit un message du type : "5 personnes en lignes". Mais comment ca marche ?


C'est tres simple. Pour commencer, que faut-il ?
1)Un hebergeur qui prend en compte le php et une base mySQL
2)Un peu de jugeotte pour modifier ce script comme bon vous semble!
3)Bah c'est tout!!!


Maintenant, installation

1)Vous connectez sur votre server mysql
2)Creer la table suivante :
#Debut de la table
CREATE TABLE live (
id int(10) NOT NULL auto_increment,
ip varchar(15) NOT NULL default '',
date int(14) NOT NULL default '0',
PRIMARY KEY (id),
UNIQUE KEY id (id),
KEY id_2 (id)
) TYPE=MyISAM;
#Fin de la table

3)Modifier les variables de connections dans le fichier "connect.php"


voici le code et des commentaires du script "connect.php"

<?
//Variables a modifier
$host = "localhost";
$user = "_votre_login";
$pass = "votre_pass";
$base = "votre_base";
//fin
include("mySQL-Config-Secret.PHP");
$db = @mysql_connect("$host", "$user", "$pass") OR DIE("Probleme de mySQL");
@mysql_select_db("$base",$db);

$duree=300;
//duree moyenne du temps resté sur une page en secondes

$limite = time() + $duree;
//duree a partir de laquelle un utilisateur est ignoré

$connect1 = mysql_query("DELETE FROM live WHERE ip='$REMOTE_ADDR' OR date<".time());
//on supprime les lignes avec la meme ip ou avec la date limite depasée

$connect2 = mysql_query("INSERT INTO live VALUES ('', '$REMOTE_ADDR', '$limite');");
//On inscrit l'utilisateur actuel

$result = mysql_query("SELECT * FROM live");
$row = MYSQL_NUM_ROWS($result);
//on compte le nombre de lignes dans la base = nombre de personne en ligne!!

//debut de la mise en page pour eviter les fautes du type : vous etes 1 personnes sur le site!!
if ($row==0){echo "Aucune personne n'est sur le site.";}//cas impossible en theorie
elseif ($row==1){echo "Vous etes seul(e) sur le site.";}//1 personne
elseif ($row>1){echo "Vous etes $row sur le site et aucun n'est membre.";}//plus
?>


Le mot de la fin

Voila, c'est aussi simple que ca. Maintenant, si vous fait un site en php, vous pourrez voir le nombre de personne sur votre site en temps reel!!!
Biensur, ce script peut permettre d'autres choses, comme des stats et autres!!!!
Une version de ce script ameliorée est visible sur
www.carafamily.fr.fm
;-)
. Voir tous les commentaires et/ou en poster un (12)
Re: Un live counter en php
Posté par adadas le 20/08/2004 07:48:51
si ya pas de BDD, on peut le faire avec un fichier .php
1. on y place une variable ($nb_connectés, par exemple) que l'on increment à chaques connexion sur la page, et que l'on décrémente à chaques sorties
2. on utilise le meme processus pour placer des IPs dans un tableau, si l'ip existe dans le tableau, on incremente po la variable
Re: Un live counter en php
Posté par joker le 20/08/2004 07:48:51
possible pour ton compteur, c sur qu'il est pas mal mais avec le mien, sachant qu'on utilise un base de données, on peu en plus de mettre l'ip de la personn et de compter le nombre de connect, faire toute une serie de stats pour les visites du site (heure de pointe par exemple) et aussi entrer dans la table des infos sur la personne (exemple dans une rubrique de membres, pour savoir si la personne connect est membre ou pas!!)
Re: Un live counter en php
Posté par julgates le 20/08/2004 07:48:51
regardez moi ce compteur de rêve :

$laps=300;
$repstats="../online";
$now=time();
$fichiero= "$repstats/$REMOTE_ADDR.txt";
$fp=fopen("$fichiero","w");
fputs ($fp,"");
fclose($fp);
$cpt=0;
$handle=opendir("$repstats");
while ($tmp = readdir($handle)) {
if($tmp!="." && $tmp!="..") {
if(filemtime("$repstats/$tmp")+$laps<$now) {
unlink("$repstats/$tmp");
} else {
$cpt++;
}
}
}
closedir($handle);
clearstatcache();

un simple dossier, un fichier par connecté, pas besoin de regarder si le fichier existe puiske il se créera tout seul le cas échéant et c'est sa dernière date de modif qui compte !
pas de sql rien
juste un dossier ou stocker les fichiers temporaires !
Re: Un live counter en php
Posté par fhl le 20/08/2004 07:48:51
cool meme le webmaster du site donne des modifs.
Mais je pense pas que ce soit integrable a une site nuked clan (domage car le module "qui est en ligne" donne pas ce qu'il est cencer faire)
Re: Un live counter en php
Posté par colargol le 20/08/2004 07:48:51
je l'aurais plutot fait avec des sessions et 1 id (évitez les bugs sous UNIX comme dit + bas)
. Voir tous les commentaires et/ou en poster un (12)
Publié le 17 décembre 2002
Modifié le 17 décembre 2002
Lu 3 728 fois

. Cet article est un plagiat?
. Imprimable (pdf/html)
Recevoir la lettre d'information :
Connectés :
    0 membres et 441 visiteurs

tubededentifrice.com, ...    CNIL: 752143.     |]  ▲