首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP计数器使用文件

PHP计数器使用文件
EN

Stack Overflow用户
提问于 2011-09-24 20:07:29
回答 1查看 482关注 0票数 1

我发现了一个非常创新和像样的计数器,它让我把计数器的代码放在主index.php页面上,然后通过我的后端系统查看计数器,然而,尽管它的工作方式,它打破了主页面,因为PHP错误,因为旧的代码;我知道一些PHP,但还不够知道我要修复什么。

计数器教程:counter tutorial link

count.db

代码语言:javascript
复制
0%0%0%0000 00 00%0

counter.php:

代码语言:javascript
复制
<?php
$ip = $_SERVER['REMOTE_ADDR'];

$file_ip = fopen('counter/ip.db', 'rb');
while (!feof($file_ip)) $line[]=fgets($file_ip,1024);
for ($i=0; $i<(count($line)); $i++) {
    list($ip_x) = split("\n",$line[$i]);
    if ($ip == $ip_x) {$found = 1;}
}
fclose($file_ip);

if (!($found==1)) {
    $file_ip2 = fopen('counter/ip.db', 'ab');
    $line = "$ip\n";
    fwrite($file_ip2, $line, strlen($line));
    $file_count = fopen('counter/count.db', 'rb');
    $data = '';
    while (!feof($file_count)) $data .= fread($file_count, 4096);
    fclose($file_count);
    list($today, $yesterday, $total, $date, $days) = split("%", $data);
    if ($date == date("Y m d")) $today++;
        else {
            $yesterday = $today;
            $today = 1;
            $days++;
            $date = date("Y m d");
        }
    $total++;
    $line = "$today%$yesterday%$total%$date%$days";

    $file_count2 = fopen('counter/count.db', 'wb');
    fwrite($file_count2, $line, strlen($line));
    fclose($file_count2);
    fclose($file_ip2);
}
?>

showcounter.php

代码语言:javascript
复制
<table>
<tr>
<th colspan="2">Unique visitors</th>
</tr>
<tr>
<td><b>Today</b></td>
<td>
<?php
$file_count = fopen('counter/count.db', 'rb');
$data = '';
while (!feof($file_count)) $data .= fread($file_count, 4096);
fclose($file_count);
list($today, $yesterday, $total, $date, $days) = split("%", $data);
echo $today;
?>
</td>
</tr>
<tr>
<td><b>Yesterday</b></td>
<td>
<?php
echo $yesterday;
?>
</td>
</tr>
<tr>
<td><b>Total</b></td>
<td>
<?php
echo $total;
?>
</td>
</tr>
<tr>
<td><b>Daily average</b></td>
<td>
<?php
echo ceil($total/$days);
?>
</td>
</tr>
</table>

感谢所有的回复,非常感谢,希望我们能让它再次工作:)

编辑:我的浏览器崩溃了,给你们一些错误信息:P

代码语言:javascript
复制
Warning: fopen(ip.db) [function.fopen]: failed to open stream: No such file or directory in /counter/counter.php on line 4

Warning: feof(): supplied argument is not a valid stream resource in /counter/counter.php on line 5

Warning: fgets(): supplied argument is not a valid stream resource in /counter/counter.php on line 5

Warning: feof(): supplied argument is not a valid stream resource in /counter/counter.php on line 5

它显示“没有这样的文件”,但是计数器被上传到/ ip.db /

代码语言:javascript
复制
Contents of the /counter/ folder:
count.db
counter.php
ip.db
index.html
showcounter.php

ip和count.db,chmod到666

EN

回答 1

Stack Overflow用户

发布于 2011-09-24 20:10:33

您说您的文件名为countdb.php,但代码中没有一个对该文件名的引用。确保您的文件命名正确。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7538899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档