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

PHP提交表单写入时间与文本到日志文件输出0如何解决

问题解决方案

核心错误原因

  • PHP中字符串拼接需使用.运算符,你代码中使用了+(算术加法运算符),PHP会尝试将参与运算的字符串转为数值计算,非数字字符串默认转为0,最终计算结果就是0,这是log.txt仅输出0的直接原因。
  • 不需要向纯文本log文件写入<pre>、<br>这类HTML标签,会降低日志可读性。
  • 原有换行逻辑不符合纯文本文件的换行规则,导致内容无法正常分行。

无需调整index.html,仅需修改process.php代码即可,修改后完整代码如下:

<?php
if(isset($_POST['field1'])) {
    $date = date('Y-m-d H:i:s');
    // 使用.拼接字符串,用PHP_EOL适配不同系统的换行符,保证每条日志单独占一行
    $data = $date . ' ' . $_POST['field1'] . PHP_EOL;
    $filename = "log.txt";
    if (!file_exists($filename)) {
        $fh = fopen($filename, 'w') or die("Cannot create file");
        fclose($fh);
    }
    $ret = file_put_contents($filename, $data, FILE_APPEND | LOCK_EX);
    if($ret === false) {
        die('There was an error writing this file');
    }
    else {
        echo "$ret bytes written to $filename";
    }
}
else {
   die('No post data to process');
}
?>

关键调整说明

  • 将字符串拼接运算符从+替换为.
  • 移除了不需要的HTML标签和nl2br函数,避免标签写入纯文本日志
  • 新增PHP_EOL系统兼容换行符,保证每次提交的内容单独占一行
  • 补充了创建文件后的fclose操作,避免文件句柄泄漏

内容的提问来源于stack exchange,提问作者Abdullah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 19:15:04