<?php require ("config.inc.php");
@mysql_connect($host,$user,$pass) or die("Impossible de se connecter à la base de données");
@mysql_select_db($bdd) or die("Impossible de se connecter à la base de données");
$tps_max_connex = 180;
$temps_actuel = date("U");
$querytest = "SELECT * FROM csdz_connectes WHERE ip='".$_SERVER['REMOTE_ADDR']."'";
$resulttest = mysql_query($querytest);
if(mysql_num_rows($resulttest) == 0)
{
$queryins = "INSERT INTO csdz_connectes(ip,time) VALUES('".$_SERVER['REMOTE_ADDR']."', '".$temps_actuel."')";
$resultins = mysql_query($queryins);
}
else
{
$queryupd = "update csdz_connectes SET time='".$temps_actuel."' WHERE ip='".$_SERVER['REMOTE_ADDR']."'";
$resultupd = mysql_query($queryupd);
}
$heure_max = $temps_actuel - $tps_max_connex;
$querydel = "DELETE FROM csdz_connectes WHERE time < $heure_max";
$resultdel = mysql_query($querydel);
?>
Et dans chaque page un include("connectes.php");<?php
$querycount = "SELECT count(ip) FROM csdz_connectes GROUP BY ip";
$resultcount = mysql_query($querycount);
$nbcon = mysql_num_rows($resultcount);
echo "Actuellement".$nbcon."connectés";
?>
Je ne suis pas d'accord, puisque le script cible les utilisateurs actuellement connectés, qu'ils soient derrière un proxy (même IP) ou pas, une connexion est ouverte pour chacun, il faut la compter.Oue mais bon les résultats sont faux si plusieurs personnes ont la même IP
un GROUP BY (qui n'est utilisé que pour organiser les doublons) n'est pas obligatoire dans cette requête. sinon le compte se fera par ip.$querycount = "SELECT count(ip) FROM csdz_connectes GROUP BY ip";
$resultcount = mysql_query($querycount);
$nbcon = mysql_num_rows($resultcount);
echo "Actuellement".$nbcon."connectés";