只是想知道是否有人可能知道为什么这个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";
?>
如果有人知道答案,你能否提出修复建议?我感谢所有的帮助。感谢。
答案 0 :(得分:0)
由于它在本地PC中工作但在远程PC中不工作,因此很可能是您的文件许可问题。因为您需要同时读取和写入文件,请为该文件提供适当的权限
Text::CSV
答案 1 :(得分:0)
很可能这是一个权限问题,但您可以轻松地找出它来调用error_get_last()。如果不是权限错误,则某些其他进程会锁定文件,或者您没有可用的磁盘空间(不太可能),或者由于某种原因会话处理失败。
您也可以尝试使用PHP代码中的chmod($counter_name, 0777);
。