单页的实时访客计数器

时间:2018-02-16 17:17:40

标签: php mysql

我目前在现场排行榜页面上工作,我正在尝试添加一个实时取景计数器。我没有得到数据发送到数据库,而不是从数据库中读取数据。我检查了数据库连接及其工作情况。我已经在php测试器中检查了代码并且没有错误。

看看,让我知道我错过了什么,谢谢

class VisitorCounterReal {

      var $sessionTimeInMin = 5; // time session will live, in minutes

 function VisitorCounter() {
    $ip  = $_SERVER['REMOTE_ADDR'];

    $this->cleanVisitors();

    if ($this->visitorExists($ip))
    {
        $this->updateVisitor($ip);
    } else
    {
        $this->addVisitor($ip);
    }


    }

    function visitorExists($ip) {

         $query = "SELECT * FROM counter WHERE ip = '$ip'";
         $res = mysqli_query($connection, $query);
         if (mysqli_num_rows($res) > 0)

    {
         return true;
    } else
         if (mysqli_num_rows($res) == 0)
        {
            return false;
        }
    }

    function cleanVisitors()
    {
    $sessionTime = 30;
    $query = "SELECT * FROM counter";
    $res = mysqli_query($connection, $query);
    while ($row = mysqli_fetch_array($res))
    {
        if (time() - $row['lastvisit'] >= $this->sessionTimeInMin * 60)
        {
            $dsql = "delete from counter where id = $row[id]";
            mysqli_query($dsql);
        }
    }
    }


    function updateVisitor($ip)
    {

    $query = "UPDATE counter SET lastvisit = '" . time() . "' WHERE ip =
    '$ip'";
    mysqli_query($connection, $query);
    }


    function addVisitor($ip)
    {
    $query = "INSERT INTO counter(ip, lastvisit) ";
    $query .= "VALUES('$ip', '" . time() . "') ";
    mysqli_query($connection, $query);
    }

    function getAmountVisitors()
    {

    $query = "SELECT COUNT(id) FROM counter";

    $res = mysqli_query($connection, $query);

    $row = mysqli_fetch_row($res);

    return $row[0];
    }


    function show()
    {

    echo '<h3>There is ' . $this->getAmountVisitors() . ' watching 
    online</h3>';



    }

    }

这是在下面的实时排行榜页面

<?php

    $counter = new VisitorCounterReal; // make a new counter
    //content here
    $counter->show(); // show the counter
    // and here
?>

0 个答案:

没有答案