Loading:

Ferie zimowe - 3 za 2

Licznik online oparty na pliku TXT

Licznik online można bardzo prosto napisać w oparciu o plik online.txt, szybkość takiego rozwiązania jest nieco większa niż zapis aktywnych adresów IP w bazie danych.

Skrypt działa w taki sposób:

Wczytuje plik online.txt do zmiennej.

Zmienna wygląda tak:  ip|time&kolejneip&kolejnytime

Jak widać & odziela poszczególne wpisy na strukture ip|time.

Więc skrypt przez explode rozdziela znakiem & tą zmienną i robi taką Array:

Potem sprawdza czy od ostatniego czasu aktywności IP  minęło mniej niż 900 sekund. jeśli tak to $online_users zwiększa liczbę.

Tworzy nową zmienną $to_save i zapisuje do pliku online.txt.

Na końcu wystarczy wyświetlić gdzieś zmienną $online_users, co zostało zrobione na koncu kodu.



Napisz Artykuł

Listing

<?php
//Script by Fastman92, Rozbudowany licznik odwiedzin ma to wszystko od razu po instalacji.

$online_time = 900;  // wpisz tu w sekundach z ilu ostatnich minut użytkownik ma być zaliczany jako aktywny

$active_users = explode('&', file_get_contents('online.txt'));
$to_write = Array();
$online_users = 0;
$time = time();
        foreach($active_users as $value)
        {
        $entry = explode('|', $value);
                if($entry[0] !== $_SERVER['REMOTE_ADDR'])
                {
                        if($time-$entry[1]<$online_time)
                        {
                        $to_write[] = $entry[0].'|'.$entry[1];
                        $online_users++;
                        }
                }
        }
$online_users++;
$to_write[] = $_SERVER['REMOTE_ADDR'].'|'.$time;
$to_write = implode('&', $to_write);
$online_fp = fopen('online.txt', 'w+');
flock($online_fp, LOCK_EX);
fwrite($online_fp, $to_write);
fclose($online_fp);

//Potem gdzieś należy wyświetlić zmienną $online_users
echo $online_users;
?>


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=2&t=5694

Dane do logowania na forum są takie same jak na funkcje.net



Dodano przez: fastman92 Ranga: Poziom 8 Punktów: 250
Komentarze użytkowników
    • Treść komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-17 v.1.5 | design: diviXdesign & rainbowcolors