PHP计数器本地工作不是远程的

时间:2016-12-14 09:41:24

标签: php counter

只是想知道是否有人可能知道为什么这个php计数器在本地完美运行(跨浏览器测试)但是一旦网站被远程迁移就不行了吗?

<?php
    session_start();
    $counter_name = "counter.txt";

    // Check if a text file exists. If not create one and initialize it to zero.
    if (!file_exists($counter_name)) {
    $f = fopen($counter_name, "w");
    fwrite($f,"0");
    fclose($f);
}

    // Read the current value of our counter file
    $f = fopen($counter_name,"r");
    $counterVal = fread($f, filesize($counter_name));
    fclose($f);

    // Has visitor been counted in this session?
    // If not, increase counter value by one
    if(!isset($_SESSION['hasVisited'])){
    $_SESSION['hasVisited']="yes";
    $counterVal++;
    $f = fopen($counter_name, "w");
    fwrite($f, $counterVal);
    fclose($f); 
    }

    echo " $counterVal DONATIONS SO FAR";
?>

如果有人知道答案,你能否提出修复建议?我感谢所有的帮助。感谢。

2 个答案:

答案 0 :(得分:0)

由于它在本地PC中工作但在远程PC中不工作,因此很可能是您的文件许可问题。因为您需要同时读取和写入文件,请为该文件提供适当的权限

Text::CSV

答案 1 :(得分:0)

很可能这是一个权限问题,但您可以轻松地找出它来调用error_get_last()。如果不是权限错误,则某些其他进程会锁定文件,或者您没有可用的磁盘空间(不太可能),或者由于某种原因会话处理失败。

您也可以尝试使用PHP代码中的chmod($counter_name, 0777);