1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Кто сейчас на сайте

Тема в разделе "Web - программирование", создана пользователем Kauperwood, 2 фев 2011.

  1. Kauperwood

    Kauperwood Гость

    Репутация:
    0
    Недавно лазил в поисках чего то интересного на мой взгяд и наткнулся на простенький счетчик онлайна посетителей на сайте.
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">who_online.php</div></div><div class="sp-body"><div class="sp-content">
    PHP:
    <?php
    session_save_path
    ("");
    session_start(); 

    function 
    getUsersOnline() { 
    $count 0

    $handle opendir(session_save_path()); 
    if (
    $handle == false) return -1

    while ((
    $file readdir($handle)) != false) { 
    if (
    ereg("^sess"$file)) $count++; 

    closedir($handle); 

    return 
    $count

    ?>
    Выложил его, - да он показывает когда кто то на сайте, но вот не могу понять почему он не сбрасывает счетчик, когда кто то покидает сайт, цифра может только увеличиваться.. в чем тут проблема?
     
  2. 1ive

    1ive Well-Known Member

    Репутация:
    0
    Регистрация:
    12 сен 2010
    Сообщения:
    621
    Симпатии:
    0
    Это скорее счетчик посещений.
    Судя по коду, он и не предусматривает уменшение значений при выходе пользователя.

    Такой, думаю, пойдет лучше:

    PHP:
    session_id("codeby.net"); 
    session_start(); 
    $time=5
    $f=1
    if(!isset(
    $_SESSION['usession']))  
    $_SESSION['usession']=0
    if(
    $_SESSION['usession']>0

    for(
    $i=0;$i<$_SESSION['usession'];$i++) 
    if(
    $_SESSION['user']['ip'][$i]==$_SERVER['REMOTE_ADDR']) 

    $_SESSION['user']['date'][$i]=date('U'); 
    $f=0
    break; 

    if(
    $_SESSION['usession']>0)        
    for(
    $i=0;$i<$_SESSION['usession'];$i++) 
    if(
    date('U')-$_SESSION['user']['date'][$i]>$time
    { for(
    $j=$i;$j<$_SESSION['usession']-1;$j++) 

    $_SESSION['user']['date'][$j]=$_SESSION['user']['date'][$j+1]; 
    $_SESSION['user']['ip'][$j]=$_SESSION['user']['ip'][$j+1]; 

    $_SESSION['usession']--; 


    if(
    $f

    $_SESSION['user']['ip'][$_SESSION['usession']]=$_SERVER['REMOTE_ADDR']; 
    $_SESSION['user']['date'][$_SESSION['usession']]=date('U'); 
    $_SESSION['usession']++; 

    echo 
    "На сайте: ".$_SESSION['usession']."пользователей!";
     
  3. Kauperwood

    Kauperwood Гость

    Репутация:
    0
    Не могу сам понять, непонятно, на том сайте написано что именно онлайн на сайте, вот ccылка.
    За Ваш вариант спасибо - вроде то, но я какой то не фартовый на счетчики, или в одну и ту же ситуацию попадаю, не ясно... С Вашим примером у меня выводиться сугубо единица. Может на хостинге в пхп что то включить нужно?

    добавлено позднее: Бедные друзья, приходиться им заходить теперь ко мне сайт чаще :facepalm: Надо будет почитать потом про то как виртуально организовать подобные опыты.
     
  4. 1ive

    1ive Well-Known Member

    Репутация:
    0
    Регистрация:
    12 сен 2010
    Сообщения:
    621
    Симпатии:
    0
    Вот код рабочий 100%))

    PHP:
    session_save_path("sessions");
    session_start();
    define("MAX_IDLE_TIME"3);
    function 
    getOnlineUsers(){ 

    if ( 
    $directory_handle opendirsession_save_path() ) ) {
    $count 0
    while ( 
    false !== ( $file readdir$directory_handle ) ) ) { 
    if(
    $file != '.' && $file != '..'){ 
    if(
    time()- filemtime(session_save_path() . '/' $file) < MAX_IDLE_TIME 60) { 
    $count++; 

    } }
    closedir($directory_handle); 
    return 
    $count
    } else {return 
    false;} 
    }
    echo 
    'Online: ' getOnlineUsers() . '<br />';
    В каталоге с файлом нужно будет создать папку "sessions" для хранения сессий.
    Пример: http://1ive.ru/online

    Кто сейчас на сайте
     
Загрузка...
Похожие Темы - Кто сейчас на
  1. Мария Смирнова
    Ответов:
    0
    Просмотров:
    14
  2. Мария Смирнова
    Ответов:
    0
    Просмотров:
    18
  3. woolf1514
    Ответов:
    19
    Просмотров:
    1.780
  4. Мария Смирнова
    Ответов:
    0
    Просмотров:
    143
  5. Мария Смирнова
    Ответов:
    0
    Просмотров:
    185

Поделиться этой страницей