没有数据库的PHP唯一访问者计数

时间:2017-06-14 01:41:25

标签: php

我已经完成了一个简单的PHP访问者计数,但它没有数据库,我只是将它存储在一个文本文件中。但是,即使用户刷新页面,视图计数也会增加。我想要一个独特的计数器,其中计数器只会在前一个会话被销毁并且用户再次访问该站点后才会增加。但是,我不确定如何实施会话。

PHP代码:

$handle = fopen("counter.txt", "r"); 
                 if(!$handle){ 
                  echo "Could not open the file" ;
                   } 
                  else { 
                    $counter = ( int ) fread ($handle,20) ;
                    fclose ($handle) ;
                    $counter++ ; 
                    echo" <p> Visitor Count: ". $counter . " </p> " ; 
                    $handle = fopen("counter.txt", "w" ) ; 
                    fwrite($handle,$counter) ; 
                    fclose ($handle) ; 
                    }

1 个答案:

答案 0 :(得分:1)

首先,开始一个会话,以便我们可以跟踪这是否是用户第一次访问此网站在此会话中
接下来我们检查会话“计数器”是否设置,如果是,我们什么都不做,否则我们用+1更新命中计数器并设置会话“计数器”。

这应该适合你。

//Existing adhoc-users table.
var adhocUsersHtml = "<div><table class='table table-striped'><tr><th>Section</th><th>Role</th><th>First Name</th><th>Last Name</th></tr>";
$.each(json.sections, function (index, section) {
    $.each(section.enrollments, function(index, user) {
        if (user.adhocEnrollment == true) {
            adhocUsersHtml += "<tr><td>" + section.sectionTitle + "</td><td>" + user.roleName + "</td><td>" + user.firstName + "</td><td>" + user.lastName + "</td>"
                + "<td><button id='delete' class='btn btn-default' data-style='height: 30px; margin-top: 0;'>Delete</button></td></tr>";
        }
    });
});
adhocUsersHtml += "</table></div>";
return adhocUsersHtml;