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

3781
5.2 из 10
Проголосовало: 22





Сколько искал скрипт 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 2118
Шаблоны форумов Ucoz 28
Шаблоны сайтов Ucoz 431
Авторство Webo4ki 309
php скрипты для ucoz 57
Графика для uCoz 40
Мини-чат
Последние комментарии
  • Marishka написал:
  • Радио не стоит на месте новая версия вам 1.5:
    Что нового:
    1. Media Session - позволит вам переключать из бара браузера радио, а также на блоке экрана.
    2. Новые радиостанции.
    3. Новый API код.

    Демо: fiddle
    Реальная полная версия: woobl
  • Marishka написал:
  • Можете добавить свои input поля, но сохраняйте их порядок в html для правильного сохранения и вывода.
  • Marishka написал:
  • Новая версия 1.3 (+6 новых станций):
    Установка:
    Демо: Перейти
  • Marishka написал:
  • Доп 8 станций:
    Код
    <div class="mSt"><p>Tropical</p><div data="2/trop_64">64</div><br><div data="2/trop_128">128</div><br><div data="2/trop_320">320</div></div>  
      <div class="mSt"><p>Нафталин FM</p><div data="2/naft_64">64</div><br><div data="2/naft_128">128</div><br><div data="2/naft_320">320</div></div>  
      <div class="mSt"><p>Rave FM</p><div data="2/rave_64">64</div><br><div data="2/rave_128">128</div><br><div data="2/rave_320">320</div></div>  
      <div class="mSt"><p>Gold</p><div data="2/gold_64">64</div><br><div data="2/gold_128">128</div><br><div data="2/gold_320">320</div></div>  
      <div class="mSt"><p>GOA/PSY</p><div data="2/goa_64">64</div><br><div data="2/goa_128">128</div><br><div data="2/goa_320">320</div></div>  
      <div class="mSt"><p>Minimal/Tech</p><div data="2/mini_64">64</div><br><div data="2/mini_128">128</div><br><div data="2/mini_320">320</div></div>  
      <div class="mSt"><p>House</p><div data="2/fut_64">64</div><br><div data="2/fut_128">128</div><br><div data="2/fut_320">320</div></div>  
      <div class="mSt"><p>Megamix</p><div data="2/mix_64">64</div><br><div data="2/mix_128">128</div><br><div data="2/mix_320">320</div></div>


    Fix работы радио:
    Находим: if(radUrl=="tm" || radUrl=="ps" || radUrl=="teo" || radUrl=="dc")
    Меняем на: if (radUrl == "tm" || radUrl == "ps" || radUrl == "teo" || radUrl == "dc" || radUrl == "gop")
  • CbIPoK2513 написал:
  • Мой вариант выдаёт аватарку картинкой, а не текстом.
    Последние темы
    Опрос
    470
    А
    Р
    Оцените новый дизай:)
    Статистика
    Анализ интернет сайта
    0
    онлайн
    0
    наших
    0
    чужих
    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    0
    Сегодня были
    Топ пользователей: