|
|
|
|
|
для: FaStY
(24.02.2006 в 19:12)
| | Я не нашёл другого способа, кроме как записывать посещённые страницы в БД =) | |
|
|
|
|
|
|
|
для: cheops
(23.02.2006 в 00:06)
| | все, все получилось, спасибо.
Вот теперь возниклаеще одна проблемка. как сделать, чтобы когда я просмотрел тему, она переставала быть новой.Я делал, чтобы те сообщения, которые были написаны с последнего входа показывались как новые, как теперь мне сделать, чтобы после прочтения, они становились старыми :) | |
|
|
|
|
|
|
|
для: FaStY
(22.02.2006 в 21:52)
| | Обратно можно переводить при помощи функци FROM_UNIXTIME(), только вам это не требуется... странно что функция не обновляет... проверьте дескрипторы $a и $b - может ошибка где происходит
<?php
if(!$a) exit(mysql_error());
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(22.02.2006 в 20:17)
| | проблема в том, что все поля с батой, у меня в формате datetime. И при выводе, у меня всегда пишет:
и почему-то не обновляет :(
я вот так сделал:
<?php
$query_lasttimeuser = "SELECT UNIX_TIMESTAMP(lastime) FROM users WHERE login = '$current_author'" ;
$result_lasttimeuser = mysql_query ($query_lasttimeuser)
or die ("ошибка aпри выборе пользователей");
$lastime = mysql_fetch_array( $result_lasttimeuser );
$lasttime = $lastime[0];
// Прошло больше 20 минут
if(time() - $lasttime > 60*20)
{
// Пользователя не было на форуме некоторое время -
// в ltime записываем значение из lasttime
$a = mysql_query("UPDATE users SET ltime = lasttime WHERE login = '$current_author'");
}
// В любом случае обновляем поле lasttime
$b = mysql_query("UPDATE users SET lasttime = NOW() WHERE login = '$current_author'");
?>
|
$current_author - это куки автора.
Просто я не знаю как переводить Unixtime обратно в datetime, хотя может и не в этом проблема | |
|
|
|
|
|
|
|
для: FaStY
(22.02.2006 в 19:14)
| | 1) Смотрим прошло ли 20 минут со момента последнего визита
SELECT UNIX_TIMESTAMP(lasttime) AS lasttime FROM users WHERE ...
|
Запрос возвращает время последнего обращения в виде числа секунд прошедших с 1 января 1970 года. Пусть это время помещается в переменную $lasttime.
<?php
// Прошло больше 20 минут
if(time() - $lasttime > 60*20)
{
// Пользователя не было на форуме некоторое время -
// в ltime записываем значение из lasttime
mysql_query("UPDATE users SET ltime = lasttime WHERE ...");
}
// В любом случае обновляем поле lasttime
mysql_query("UPDATE users SET lasttime = NOW() WHERE ...");
?>
|
2) Извлекаем значение поля ltime из таблицы users
SELECT ltime FROM users WHERE ...
|
Всё ничего больше делать не нужно - это значение используем в других запросах для отображения новых сообщений
SELECT * FROM msg WHERE puttime > 'ltime'
|
| |
|
|
|
|
|
|
|
для: cheops
(21.11.2005 в 13:10)
| | значит у меня есть таблица users в ней поля: id, login, lasttime(это при каждом обращенииам форума), ltime(сюда должны перебрасываться дата, если пользователь отсутсвовал 20 мин), покажите пожалуйста на этом примере, как осуществить проверку новых сообщений? | |
|
|
|
|
|
|
|
для: FaStY
(15.02.2006 в 00:42)
| | 1) например:
в базе есть таблица текущих сессий. (user_name, last_uptime, host, ip )
есть index.php -(основная страница форума куда польхователь точно зайдёт )
в котором вызывается функция online();
а) основаная задача данной функции проверить существует ли запись в таблице сессий с запись с username == имени (логину) пользователя, если нету то добавить. (пользователь вощол)
а если есть запись то обновить время last_update
б) проверить если вышел таймаю для других сессий то удалить их.
2) читать внимательно 1) | |
|
|
|
|
|
|
|
для: Sulla
(14.02.2006 в 23:48)
| | 1) подскажите как сделать, чтобы в базу добавлялось когда пользователь последний раз зашёл на форум.(это делать скрипт добавления в базу в каждой странице?(ведь мало ли с какой страницы он зайдет))
2)как после того, как он придет и все сообщения со времени last_login будут новыми, нам поставить в эти поля текущее время(опять на каждой страниуе делать проверку и вводить NOW()?) | |
|
|
|
|
|
|
|
для: FaStY
(14.02.2006 в 22:47)
| | собсвенно поидее работает так:
в таблице есть пункт last_login (когда пользователь последний раз защёл на форум )и last_uptime (вреям последней проверки жиф ли он)
если он приходит в первый раз то отмечаем "новыми" (для него) все сообщения
со времени last_login. после того ставим
last_login - текущее время ,
last_uptime - текущее время
соответсвенно при каждой новой загрузке страницы с топиками last_uptime обновляем
(тут запуск порверки на выход с форума потайм ауту ),
а last_login не трогаем.
пользователь зависает на интересном топике 20 или более минут , обновляет потом переходит в другой топик :
функция проверки выхода по тайм ауту получает что last_uptime < (текущег оврермени минус 20 минут) ,всё пользователь сичтается заново пришедшим
ему отмечаются сообщения новыми те которые появились после last_login
после этого last_login = теукщему времени ... ивсё по новой )
надеюсь понятно --=) | |
|
|
|
|
|
|
|
для: cheops
(21.11.2005 в 13:10)
| | 1)хм... хоть убейте не понял :( можно еще как-нить объяснить и желательно на примерах.
2) вот в Таблице last_time На вашем форуме есть такие поля: now1 | last_time1| now2 | last_time2 и т.д. Можно обяснить для чего они и как с ими пользоваться? | |
|
|
|
|