PHP只有Hit Counter?

时间:2013-09-23 12:45:02

标签: php hitcounter

所以,我多年前曾经玩过网络开发,而且我有点生疏,但不是那么生锈!

我前几天刚刚使用PHP变量制作了一个完整的视频游戏页面,将不同的游戏加载到不同大小的iframe中。有了这个说,为什么在地球上我不能得到一个简单的PHP命中计数器工作?我已经在脚本脚本之后下载了脚本,CHMOD将txt文件改为777,整个9。Chrome不支持点击计数器或什么?甚至我访问的网站提供的点击计数器也不会在他们的演示页面上工作!这笔交易是什么?我记得几年前,我复制了大约10条非常基本的代码行,将其保存为PHP文件,将其与空白txt文件一起上传到服务器,bam,每次都完美地工作。发生了什么变化?

这是我正在使用的代码。顺便说说。我尝试将其添加到我的index.html中,我也尝试将其用作单独的php文件并使用INCLUDE调用它,一切。似乎没什么用。

<?php

$open = fopen(“hits.txt”, “r+”);
$value = fgets($open);
$close = fclose($open);

$value++;

$open = fopen(“hits.txt”, “w+”);
fwrite($open, $value); // variable is not restated, bug fixed.
$close = fclose($open);

?>

然后我想要显示结果,我有,

<?php echo $value; ?>

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

您可以将以下内容用作基本点击计数器:

<?php
    $counter = file_get_contents('./file') + 1;
    file_put_contents('./file', $counter);
?>

你可能想要实现某种方式来检查它不只是一个用户刷新页面......简单的东西:

<?php
    session_start();
    if(empty($_SESSION['visited']){
        $counter = file_get_contents('./file') + 1;
        file_put_contents('./file', $counter);
    }
    $_SESSION['visited'] = TRUE;
?>

将检查用户是否已在同一session中访问过该网站,如果他们有,则不会增加该值。

答案 1 :(得分:1)

您可以在PHP中创建一个ajax文件,并在一个时间间隔内调用ajax并显示点击计数器到页面。

首先创建一个ajax文件:ajax_user_count.php

<?php
session_start();
$log_file_name = 'traffic_count.log';
$count = file_get_contents($log_file_name, true);
if(empty($count)){$count = 0;}  
if(isset($_POST['action'])){
    $action = $_POST['action'];
    if($action == 'enter'){
        if(!isset($_SESSION['user_count'])){
            $count += 1;
            if($count == 0) { $count = 1; }
            $_SESSION['user_count'] = $count;
            $message = $count; 
            file_put_contents($log_file_name, $message);        
        }
    } else if($action == 'leave'){
        $count -= 1;
        $_SESSION['user_count'] = $count;
        $message = $count; 
        file_put_contents($log_file_name, $message);
        session_destroy();  
    }
}

echo $count;
die;

然后通过此

调用ajax文件
$(document).ready(function(){
    get_enter_web_traffic();
    setInterval(function(){ 
        get_enter_web_traffic();
    }, 1000);
    $(window).bind("beforeunload", function() {
        $.ajax({
                type: "POST",
                async: false,
                cache: false,
                url: "ajax_user_count.php",
                data: {'action' : 'leave'},
                success: function(result) { },
                error: function(data) { location.reload(); 
            }
        });
    });     

});

function get_enter_web_traffic(){
    var data = {'action' : 'enter'};    
    $.post('ajax_user_count.php',data,function(response){
        $('#count_user').html(response); // website hit count
    }); 
}

答案 2 :(得分:0)

我目前正在学习PHP。想出了这个易于实现的计数器。看看

<?php 

$filename = "count.txt";// the text file to store count
// Open the file foe reading current count
$fp = fopen($filename, 'r');

//Get exiting count
$count = fread($fp, filesize($filename));

//close file
fclose($fp);

//Add 1 to the existing count
$count = $count +1;

//Display the number of hits
echo "<p>Total amount of Hits:" . $count. "</p>";

//Reopen to modify content
$fp = fopen($filename, 'w');

//write the new count to file
fwrite($fp, $count);

//close file
fclose($fp);

?>

希望这段代码对某人有用。