- // le code à insérer sur chaque page (il est préférable de le mettre dans un include pour pas envahir votre code ;)
- //////////////////////////////////////
- $id_user=(is_online())?($_SESSION[id_mb]):(0);
- $t=mysql_query("select * from sessions where phpsessid='".session_id()."';");
- if(mysql_num_rows($t)==1 && $_SESSION[id_session]==mysql_result($t,0,'id')){ //session déjà registrée
- mysql_query("update sessions set id_user='$id_user',date_fin=NOW(),url_page='$_SERVER[REQUEST_URI]' where id='$_SESSION[id_session]' and phpsessid='".session_id()."';");
- }else{ //new session
- mysql_query("delete from sessions where phpsessid='".session_id()."';"); //supprime l'éventuelle session qui a le meme phpsessid
- if(is_online())
- mysql_query("delete from sessions where id_user='$_SESSION[id_mb]' and phpsessid<>'".session_id()."';");
- mysql_query("insert into sessions (phpsessid,id_user,ip,date_debut,date_fin,url_page) values ('".session_id()."','$id_user','$_SERVER[REMOTE_ADDR]',NOW(),NOW(),'$_SERVER[REQUEST_URI]');");
- $_SESSION[id_session]=mysql_insert_id(); session_register("id_session");
- }
- //maintenant faut faire le ménage pour voir ceux qui se sont déconnectés entre temps
- $connectes=mysql_query("select * from sessions order by date_fin asc");
- $limite=mktime(date('H'),date('i')-10,date('s'),date('m'),date('d'),date('Y'));
- for($i=0;$i<=mysql_num_rows($connectes)-1;$i++){
- $date_fin=strtotime(mysql_result($connectes,$i,'date_fin'));
- if($date_fin<$limite){
- mysql_query("delete from sessions where id='".mysql_result($connectes,$i,'id')."';");
- }else break; //pour pas tous les reparcourir pk c trié dans l'ordre date_fin asc
- }
-
- //et le code à mettre aussi sur chq page qui affiche le nombre de connectés et de visiteurs
- //////////////////////////////////////
-
- $mb_connectes=mysql_query("select * from sessions where id_user<>'0';");
- $nb_mb_connectes=mysql_num_rows($mb_connectes);
- $connectes=mysql_query("select * from sessions where id_user='0';");
- $nb_connectes=mysql_num_rows($connectes);
- echo number_format($nb_connectes,0,'',' ').' visiteurs';
- echo ', ';
- echo number_format($nb_mb_connectes,0,'',' ').' membres';
// le code à insérer sur chaque page (il est préférable de le mettre dans un include pour pas envahir votre code ;)
//////////////////////////////////////
$id_user=(is_online())?($_SESSION[id_mb]):(0);
$t=mysql_query("select * from sessions where phpsessid='".session_id()."';");
if(mysql_num_rows($t)==1 && $_SESSION[id_session]==mysql_result($t,0,'id')){ //session déjà registrée
mysql_query("update sessions set id_user='$id_user',date_fin=NOW(),url_page='$_SERVER[REQUEST_URI]' where id='$_SESSION[id_session]' and phpsessid='".session_id()."';");
}else{ //new session
mysql_query("delete from sessions where phpsessid='".session_id()."';"); //supprime l'éventuelle session qui a le meme phpsessid
if(is_online())
mysql_query("delete from sessions where id_user='$_SESSION[id_mb]' and phpsessid<>'".session_id()."';");
mysql_query("insert into sessions (phpsessid,id_user,ip,date_debut,date_fin,url_page) values ('".session_id()."','$id_user','$_SERVER[REMOTE_ADDR]',NOW(),NOW(),'$_SERVER[REQUEST_URI]');");
$_SESSION[id_session]=mysql_insert_id(); session_register("id_session");
}
//maintenant faut faire le ménage pour voir ceux qui se sont déconnectés entre temps
$connectes=mysql_query("select * from sessions order by date_fin asc");
$limite=mktime(date('H'),date('i')-10,date('s'),date('m'),date('d'),date('Y'));
for($i=0;$i<=mysql_num_rows($connectes)-1;$i++){
$date_fin=strtotime(mysql_result($connectes,$i,'date_fin'));
if($date_fin<$limite){
mysql_query("delete from sessions where id='".mysql_result($connectes,$i,'id')."';");
}else break; //pour pas tous les reparcourir pk c trié dans l'ordre date_fin asc
}
//et le code à mettre aussi sur chq page qui affiche le nombre de connectés et de visiteurs
//////////////////////////////////////
$mb_connectes=mysql_query("select * from sessions where id_user<>'0';");
$nb_mb_connectes=mysql_num_rows($mb_connectes);
$connectes=mysql_query("select * from sessions where id_user='0';");
$nb_connectes=mysql_num_rows($connectes);
echo number_format($nb_connectes,0,'',' ').' visiteurs';
echo ', ';
echo number_format($nb_mb_connectes,0,'',' ').' membres';