【问题标题】:PHP counter working locally not remotelyPHP计数器在本地而不是远程工作
【发布时间】:2016-12-14 09:41:24
【问题描述】:

只是想知道是否有人可能知道为什么这个 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";
?>

如果有人知道答案,您能否提出解决方案?我感谢所有帮助。谢谢。

【问题讨论】:

  • 您确定您有权打开和读取远程服务器上的 counter.txt 吗?
  • 这是正确的粘贴吗:" enter code heresession_start(); "
  • 抱歉,它已修复
  • 如果发布的答案都没有解决问题,请发布自己的答案,以便其他人可以从您的错误中受益,或者如果问题微不足道,请删除问题

标签: php counter


【解决方案1】:

由于它在本地 PC 上工作,但在远程 PC 上不工作,最有可能的问题是您的文件权限。由于您需要在文件中读取和写入,请为该文件设置适当的权限

chmod 777 counter.txt

【讨论】:

    【解决方案2】:

    很可能是权限问题,但您可以通过调用error_get_last() 轻松解决。如果不是权限错误,则其他进程锁定了文件,或者您的可用磁盘空间为零(不太可能),或者会话处理由于某种原因失败。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多