如何让表单在文件已存在时返回错误,避免文件被编辑或覆盖?
修改后的代码及说明
要实现文件已存在时返回错误、禁止覆盖的需求,你可以对代码做如下调整:
<?php if( $_POST["potus"] && $_POST["data"] ){ $name = $_POST['potus']; $data = $_POST['data']; $ext = ".php"; $filename = $name . $ext; // 检查目标文件是否已存在 if(file_exists($filename)){ echo "错误:文件 {$filename} 已存在,禁止覆盖"; exit(); } // 文件不存在时才执行写入 file_put_contents($filename , $data); echo "文件创建成功"; } else { echo "请提交必要的参数"; exit(); } ?>
关键修改点:
- 先拼接完整的目标文件名(包含后缀),修正原代码中仅判断
$name是否存在的逻辑错误 - 当检测到文件已存在时,直接输出错误提示并终止脚本,不再执行后续写入操作
- 移除原代码中重命名现有文件的逻辑,确保已存在的文件不会被修改或覆盖
- 调整了参数判断逻辑(将
||改为&&),确保只有当文件名和内容参数都提交时才执行文件操作,避免参数缺失导致的异常
内容的提问来源于stack exchange,提问作者wqyutv
相关产品推荐
相关产品推荐

