|
|
|
| Таблица users:
CREATE TABLE `users` (
`id` int(11) NOT NULL auto_increment,
`login` varchar(20) NOT NULL default '',
`password` varchar(32) NOT NULL default '',
`realname` varchar(20) NOT NULL default '',
`email` varchar(45) NOT NULL default '',
`icq` varchar(45) NOT NULL default '',
`icq2` varchar(45) NOT NULL default '',
`url` varchar(45) NOT NULL default '',
`tell` varchar(45) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3 ;
|
Как вывести на сайте пользователей online ?? помогите пожалуйста! | |
|
|
|
|
|
|
|
для: t3ma
(22.07.2007 в 08:44)
| | Посмотрите пример | |
|
|
|
|
|
|
|
для: ddhvvn
(22.07.2007 в 10:22)
| | Спасибо! посмотрел. но почему то после 20 минут сесия из таблицы неудаляется! | |
|
|
|
|
|
|
|
для: t3ma
(22.07.2007 в 11:37)
| | Обработайте ошибку для DELETE-запроса - ничего не выводится?
<?php
$query = "DELETE FROM session
WHERE putdate < NOW() - INTERVAL '20' MINUTE";
if(!mysql_query($query)) exit("Ошибка - ".mysql_error());
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(22.07.2007 в 12:01)
| | ничего не выводиться! и еще: хоть сколько человек зайдут, сессия новая несоздаеться в БД! (всего 1 сесия в таблице и только она обновляется) | |
|
|
|
|
|
|
|
для: t3ma
(22.07.2007 в 08:44)
| | Я у себя на сайте делал так:
есть таблица:
CREATE TABLE online (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
sis TINYTEXT, SESSID
cid INT, номер пользователя в таблице users
come DATETIME, кодга пришел
last INT, время последнего просмотра сттраницы + время жизни сессии
hide TINYINT) если 1 то на сайте скрытно
|
и вот такой вот php скриптик в каждом скрипте сайта:
<?php
if ($link=mysql_connect($dbhost, $dblogin, $dbpassword)) {
mysql_select_db($dbase);
$result=mysql_query("SELECT id FROM online WHERE sis = '".session_id()."'");
if ($row=mysql_fetch_array($result)) {
if (isset($_SESSION['user'])) {$user=$_SESSION['user'];} else $user=0;
mysql_query("UPDATE online SET last = '".strtotime("+30 min")."', cid = '".$user."' WHERE id = '".$row['id']."'");
} else {
$query="INSERT INTO online VALUES ('0', '".session_id()."', '0', '".date("Y-m-d H:i:s")."', '".strtotime("+30 min")."', '0')";
if (!(mysql_query($query))) exit ($query);
}
mysql_query("DELETE FROM online WHERE last < '".strtotime("now")."'");
$result=mysql_query("SELECT id FROM online WHERE cid = '0'");
$guests=mysql_num_rows($result);
$result=mysql_query("SELECT cid FROM online WHERE cid != '0'");
$users=mysql_num_rows($result);
mysql_close($link);
}
?>
|
пояснения:
$_SESSION['user'] идентификатор пользователя из таблицы users после авторизации
остальное вроде понятно | |
|
|
|
|
|
|
|
для: parczynski
(22.07.2007 в 13:32)
| | не совсем понятно.. объясните подробнее.. скажите ваще ICQ | |
|
|
|
|
|
|
|
для: t3ma
(22.07.2007 в 14:35)
| | ICQ в личной инфе есть | |
|
|
|
|
|
|
|
для: parczynski
(22.07.2007 в 13:32)
| | у меня этот скрипт неработает почему-то есть другие варианты ? | |
|
|
|