Таблица session CREATE TABLE session ( id_session tinytext NOT NULL, putdate datetime NOT NULL default '0000-00-00 00:00:00', user tinytext NOT NULL ) TYPE=MyISAM; Скрипт регистрации посетителей в таблице session <?php // Начинаем сессию session_start(); // Получаем уникальный id сессии $id_session = session_id(); // Устанавливаем соединение с базой данных include "config.php"; // Проверяем, присутствует ли такой id в базе данных $query = "SELECT * FROM session WHERE id_session = '$id_session'"; $ses = mysql_query($query); if(!$ses) exit("<p>Ошибка в запросе к таблице сессий</p>"); // Если сессия с таким номером уже существует, // значит пользователь online - обновляем время его // последнего посещения if(mysql_num_rows($ses)>0) { $query = "UPDATE session SET putdate = NOW(), user = '$_SESSION[user]' WHERE id_session = '$id_session'"; mysql_query($query); } // Иначе, если такого номера нет - посетитель только что // вошёл - помещаем в таблицу нового посетителя else { $query = "INSERT INTO session VALUES('$id_session', NOW(), '$_SESSION[user]')"; if(!mysql_query($query)) { echo $query."<br>"; echo "<p>Ошибка при добавлении пользователя</p>"; exit(); } } // Будем считать, что пользователи, которые отсутствовали // в течении 20 минут - покинули ресурс - удаляем их // id_session из базы данных $query = "DELETE FROM session WHERE putdate < NOW() - INTERVAL '20' MINUTE"; mysql_query($query); ?> Выводим содержимое таблицы session <?php // Устанавливаем соединение с базой данных include "config.php"; // Выводим имена всех посетителей, записи о которых имеются // в таблице session $query = "SELECT * FROM session"; $ath = mysql_query($query); if(!$ath) exit("<p>Ошибка в запросе к таблице сессий</p>"); // Если хоть кто-то есть - выводим таблицу if(mysql_num_rows($ath)>0) { echo "<table>"; while($author = mysql_fetch_array($ath)) { // Если посетитель не зарегистрирован // выводим вместо его имени - "аноним" if(empty($author['user'])) echo "<tr><td>аноним</td></tr>"; else echo "<tr><td>".$author['user']."</td></tr>"; } echo "</table>"; } ?> Конфигурационный файл config.php <?php // сейчас выставлен сервер локальной машины $dblocation = "localhost"; // Имя базы данных, на хостинге или локальной машине $dbname = "dbase"; // Имя пользователя базы данных $dbuser = "root"; // и его пароль $dbpasswd = ""; // Устанавливаем соединение с базой данных $dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd); if (!$dbcnx) { exit( "<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" ); } // Выбираем базу данных if (! @mysql_select_db($dbname,$dbcnx) ) { exit( "<P>В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.</P>" ); } // Определяем версию сервера $query = "SELECT VERSION()"; $ver = mysql_query($query); if(!$ver) exit("Ошибка при определении версии MySQL-сервера"); $version = mysql_result($ver, 0); list($major, $minor) = explode(".", $version); // Если версия выше 4.1 сообщаем серверу, что будем работать с // кодировкой cp1251 $ver = $major.".".$minor; if((float)$ver >= 4.1) { mysql_query("SET NAMES 'cp1251'"); } ?>
|