Сколько пользователей просматривает сайт (сколько online)
Таблица MYSQL:
CREATE TABLE IF NOT EXISTS `sessions` ( `id` int(11) NOT NULL auto_increment, `id_session` varchar(256) NOT NULL, `up_date` datetime NOT NULL, `user` varchar(40) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
counter.php (Подключаем для каждой страницы):
$id_session=session_id(); $ro=mysql_query("SELECT * FROM sessions WHERE id_session ='".$id_session."'"); if($ro) { if(mysql_num_rows($ro)>0) { $upd=mysql_query("UPDATE sessions SET up_date=NOW(), user='".$_SESSION['username']."' WHERE id_session ='".$id_session."'"); } else { $into=mysql_query("INSERT INTO sessions (id_session, up_date, user) VALUES ('".$id_session."',NOW(),'".$_SESSION['username']."')"); } } $del=mysql_query("DELETE FROM sessions WHERE up_date<NOW()-INTERVAL '15' MINUTE"); function CountOnlineUsers($ifguest){ $q=mysql_query("SELECT COUNT(*)FROM sessions WHERE user".$ifguest); if(mysql_num_rows($q)>0) { return mysql_result($q,0); } } $lang_stat=array( 'online_all'=>'Онлайн всего: ', 'online_guest'=>'Гостей: ', 'online_user'=>'Пользователей: ' );
online.php (Подключаем там, где надо):
$guests=CountOnlineUsers("=''"); $users=CountOnlineUsers("!=''"); $all=$guests+$users; echo $lang_stat['online_all'].$all."<br/>"; echo $lang_stat['online_guest'].$guests."<br/>"; echo $lang_stat['online_user'].$users."<br/>";