Статус Online/Offline на PHP

4180
5.4 из 10
Проголосовало: 23





Сколько искал скрипт Online/Offline для PHP, ни разу не видел.. Вот решил поделиться своим. Скрипт написан лично мною..
Создаем файл userstatus.php и кидаем туда:
Код
<?php
session_start();
include ("bd.php");

$today = date("U");
$totime = date("H:i:s",time()+3*3600);
$olddate = date("d.m.Y");
$id = $_SESSION['id'];
$timeold = mysql_query("UPDATE usersinfo SET lastdate='$today' WHERE id='$id'");
$timeout = mysql_query("UPDATE usersinfo SET lasttime='$totime' WHERE id='$id'");
$olddatee = mysql_query("UPDATE usersinfo SET olddate='$olddate' WHERE id='$id'");
?>

include ("bd.php"); - ваше подключение к Базе Данных.
$_SESSION['id']; - получаем таким образом: $_SESSION['id']="Оператор который впишет ID пользователя";

Этот код ставим на те страницы где вы хотите что бы через указанное количество времени обновлялась информация о том онлайн ли пользователь:
Код
<script>
object = {
func: function() {
$.get("/userstatus.php");
function onAjaxSuccess(data)
{
} }
}
setInterval( object.func , 20000)
</script>

setInterval( object.func , 20000) - эта строка указывает интервал с которым будет отправляться запрос. (20000 = 20 секунд).

Вот этот код в то место где будет показывать онлайн ли сейчас пользователь:
Код
<?php
$id = $_SESSION['id'];
$userinfo = mysql_query("SELECT lastdate FROM `usersinfo` WHERE id='$id'");
$userinfodat = mysql_fetch_array($userinfo);

$today = date("U");
if($userinfodat['lastdate'] + 100 < $today) {
echo "<div class='offlineStatus'></div>";
} else {
echo "<div class='onlineStatus'></div>";
};
?>

$userinfodat['lastdate'] + 100 < $today - это означает что если последнее время которое было записано в бд + 100 секунд меньше чем нынешнее время, то помечаем что пользователь Оффлайн.

Это добавляем в ваш CSS:
Код
.onlineStatus {background:#4dbd21;width:10px;height:10px;border-radius:5px;}
.offlineStatus {background:#ff0700;width:10px;height:10px;border-radius:5px;}


Настраиваем phpMyAdmin:
Создаем таблицу с названием usersinfo и создаем такие поля с такими же параметрами как на скрине:

Автор скрипта BlackPh.. При копировании указывайте автора!
Автор публикации: Загрузка
Загрузка
BlackPh, это его n материал
  • Всего комментариев: 6

BlackPh
Ответить
0
BlackPh написал: Написано 23 мая 2013 в 01:36
Комментарий №6
Как писал скрипт, изначально сделал так как ты написал..
Но он у меня почему то не работал. Я перерыл весь скрипт а потом решил сделать по отдельности эти запросы. И он заработал. Вот почему я выложил именно в таком виде.

BlackPh
Ответить
0
BlackPh написал: Написано 22 мая 2013 в 23:14
Комментарий №5
Забыл..
$userinfodat['today']; - Выводит дату последнего входа.
$userinfodat['totime']; - Выводит время последнего входа.
Пример вывода данных: echo "$userinfodat[today] в $userinfodat[totime]";

OkiMoTo
Ответить
0
OkiMoTo написал: Написано 22 мая 2013 в 20:48
Комментарий №2
Как это относиться к ucozy то?)

Goodmind
Ответить
+2
Goodmind написал: Написано 22 мая 2013 в 21:11
Комментарий №3
У админа просто нет других категорий, зациклился он на юкозе biggrin

BlackPh
Ответить
0
BlackPh написал: Написано 22 мая 2013 в 23:02
Комментарий №4
Покупаешь PHP и на все 100% относиться.. wacko

alex0005
Ответить
-4
alex0005 написал: Написано 22 мая 2013 в 19:50
Комментарий №1
Смысл? Я вижу, что вы его тоже не видите :3

  • Оставить комментарий:
Добавлять комментарии могут только зарегистрированные пользователи.
Регистрация | Вход
Меню сайта
Категории
Для помощи создания сайта uCoz 25
Скрипты и модификации для Ucoz 2123
Шаблоны форумов Ucoz 28
Шаблоны сайтов Ucoz 431
Авторство Webo4ki 309
php скрипты для ucoz 57
Графика для uCoz 40
Мини-чат
Последние комментарии
в страница добавления/редактирования материала отображается следуещее ,success:function(a){var a=$(a);!a.text().match('myWinError')? plusrep(a) : _uWnd.content('addEnt',a.text().match(/<div[^<>]*>(.+)<\/div>/i)[0])||$('input.manFlSbm').attr('disabled',0)}

и не работает ничего(, что делать?
  • modelswar3 написал:
  • Обновите ссылку!!
  • Marishka написал:
  • По просьбам поправили!.
    1. Делаем все как написано.
    2. Находим файл /Ucoz4/ctena_user2_wall_v2.js и меняем все в файле из нашего файла:
    Код
    http://mbs.usite.pro/ctena_user2_wall_v2.js
  • rayven написал:
  • в любом случае, всегда надо под свои нужды настраивать руками. А скрипт пригодиться, не тут, так там.
  • rayven написал:
  • даже Вовчик со мной согласен. tongue
    Последние темы
    Опрос
    291
    А
    Р
    Что произойдёт: $("#...
    Статистика
    Анализ интернет сайта
    0
    онлайн
    0
    наших
    0
    чужих
    Онлайн всего: 3
    Гостей: 3
    Пользователей: 0
    0
    Сегодня были
    Топ пользователей: