Время онлайн юзера

Печать RSS
34

Автор
Пришелец
0
Помогите с таким вопросом: как реализовать время онлайн юзера. Ну всмысле скоко он провел онлайн на сайте с момента регестрации. желательно файлы. Заранее спасибо.
А

Сказочник
0
Тогда нужно поле, в которое (допустим переменная $online) записывается время time() после авторизации. Допустим авторизовался, время записалось.
Скрипт сброса пользователей (или кроном или как у вас делается, что видно что человек ушел с сайта), когда он видит в условии что человека нет больше такого-то времени и перед тем как поменять значение в онлайн на офлайн, нужно дописать в новое поле (как раз то время которое он был онлайн) $time += time()-$online;
Таким образом в переменную тайм мы будем записывать время которое он провел до этого момента + время которое провел сейчас на сайте в секундах.
Ну а чтоб вывести в днях и т.д., то делим на 60 сек, 60 мин, 24 часа)
Вот так не сложно smile
Автор
Пришелец
0
спасибо, а как сделать шоб при обновлении страници плюсовалось время и записывалойь?
Изменил: MIK (26.04.2010 / 13:06)
А

Сказочник
0
ну блин... тогда проще в сессии сделать.
при заходе формируется сессия session_start();
в переменную сессии записывается time(), например $_SESSION['time']
а выводишь time() - $_SESSION['time'].
Пример: http://mail66.org/test/5/
Автор
Пришелец
0
братан, спасибо, я так и делал. Вопрос в том, как правильно приплюсовать время которое юзер накрутил всего и время этого сеанса? Я отвел для этой операции отдельный фаил и инклудю его. Проблема в том что записываетса неправильна. Получаетса завышеное время.

2000 лет д.н.э.
0
<?php
if(isset($_SESSION['timestep'])){
$userlife = time()-$_SESSION['timestep']; //время простоя между шагом
$sql->query("UPDATE users SET lifetime = lifetime+$userlife WHERE id = '".$user['id']."';"); // добавляем к времени жизни юзера
}
$_SESSION['timestep'] = time(); // начинаем новый отсчет шага
?>
ну где то примерно вот так..
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск