Loading:


    Ilość użytkowników online na stronie (Licznik osób on-line) - PHP i MySQL

    Skrypt pobiera od użytkownika adres IP biorąc pod uwagę 6 parametrów, po czym dodaje go do bazy na tej podstawie wyliczane są osoby obecnie przebywające na stronie, po upływie 5 min uzytkownik jest usuwany z bazy.

     

    SQL dla tego skryptu:

    CREATE TABLE `useronline` (
      `id` int(10) NOT NULL AUTO_INCREMENT,
      `ip` varchar(15) NOT NULL DEFAULT '',
      `timestamp` varchar(15) NOT NULL DEFAULT '',
      PRIMARY KEY (`id`),
      UNIQUE KEY `id`(`id`)
    ) TYPE=MyISAM COMMENT='' AUTO_INCREMENT=1 ;



    Napisz Artyku³

    Listing


    <?php
    require('functions/baza.php');

    function lacz_bd()
    {  
      $db = new mysqli('localhost', 'uzytkownik', 'haslo', 'nazwa_bazy');  
        if (! $db)
          return false;
       $db->autocommit(TRUE);
       return $db;
    }


    $db = lacz_bd();

    function userOnline(){
            $timestamp = time();
            $timeout = 500;
            $count = 0;
            $error;
            $i = 0;
            global $db;
                   
                    if (getenv('HTTP_CLIENT_IP')) {
                            $ip = getenv('HTTP_CLIENT_IP');
                    }
                    elseif (getenv('HTTP_X_FORWARDED_FOR')) {
                            $ip = getenv('HTTP_X_FORWARDED_FOR');
                    }
                    elseif (getenv('HTTP_X_FORWARDED')) {
                            $ip = getenv('HTTP_X_FORWARDED');
                    }
                    elseif (getenv('HTTP_FORWARDED_FOR')) {
                            $ip = getenv('HTTP_FORWARDED_FOR');
                    }
                    elseif (getenv('HTTP_FORWARDED')) {
                            $ip = getenv('HTTP_FORWARDED');
                    }
                    else {
                            $ip = $_SERVER['REMOTE_ADDR'];
                    }
                   
           
            $insert = $db->query("INSERT INTO useronline(timestamp, ip) VALUES ('$timestamp', '$ip')");
                   
            $delete = $db->query("DELETE FROM useronline WHERE timestamp < ($timestamp - $timeout)");
           
            $wynik = $db->query("SELECT DISTINCT ip FROM useronline");
            $count = $wynik->num_rows;
            return $count;

    }

    echo "Użytkowników online: ".userOnline();

    ?>




    Dodano przez: igor
    Ranga: Administrator serwisu Punktów: 0
    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-2025 v.1.5 | design: diviXdesign & rainbowcolors