You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP服务端计数器递增问题:前端写入操作失败求助

问题排查与修复方案

核心问题1:文件打开模式错误

你的add.php中使用fopen("c.txt", "w")模式,该模式会直接清空目标文件,导致后续fread无法读取到原有计数器数值。

修复代码(二选一即可)

<?php
// 方案1:用文件读写简化函数,更简洁
$current_count = (int)file_get_contents("c.txt");
file_put_contents("c.txt", $current_count + 1);
?>
<?php
// 方案2:用读写模式操作文件
$file = fopen("c.txt", "r+"); // r+模式不清空文件,支持读写
$current_count = (int)fread($file, filesize("c.txt"));
fseek($file, 0); // 将文件指针移回开头
fwrite($file, $current_count + 1);
ftruncate($file, ftell($file)); // 截断多余内容(避免旧值长度大于新值时残留)
fclose($file);
?>

核心问题2:异步请求时序问题

你的add()函数中,$.get("add.php")是异步执行的,可能PHP还未完成文件写入,$("#c").load("c.txt")就已经读取了旧文件内容。

修复代码

将读取操作放到$.get的回调函数中,确保写入完成后再更新页面:

function add() {
  $.get("add.php", function() {
    $("#c").load("c.txt");
  });
}

额外排查点:文件权限

确认c.txt所在目录给了PHP进程写入权限(通常设置目录权限为755,文件权限为644),否则PHP无法修改文件内容。

内容的提问来源于stack exchange,提问作者mí ebı

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 11:00:46