网站表单提交后TXT文件字节增加但无内容,如何排查解决?
问题原因与修复方案
核心原因
你的HTML表单未指定提交方法,默认使用GET方式提交数据,但PHP代码中用$_POST['card']获取参数,导致$card变量为空值。写入文件的只有换行符(占1-2字节,取决于系统),所以文件字节数增加,但看不到实际内容。
修复步骤
修改HTML表单,添加POST提交方法
在<form>标签中加入method="POST"属性,确保数据通过POST方式传递:<div> <form action="controller.php" method="POST"> <input name="card" id="card" type="email"> <button type="submit" name="submit">Submit</button> </form> </div>增加参数检查,避免报错
在PHP代码中先判断card参数是否存在,再执行写入操作,同时可开启错误提示方便调试:<?php // 开启错误提示(调试用,上线后可关闭) error_reporting(E_ALL); ini_set('display_errors', 1); $card = isset($_POST['card']) ? trim($_POST['card']) : ''; if (!empty($card)) { $file = fopen('file.txt', "a"); fwrite($file, $card . "\n"); // 用\n替代换行,兼容性更好 fclose($file); } die(header("Location: ".$_SERVER["HTTP_REFERER"])); ?>验证文件权限(可选)
虽然子域名能正常运行,但主域名可能存在权限差异,确保file.txt所在目录拥有写入权限,PHP进程可对该文件执行写入操作。
内容的提问来源于stack exchange,提问作者Don Schulz
相关产品推荐
相关产品推荐

