如果檔案已存在,如何使表單重新調整出錯以防止檔案被編輯或覆寫?
如果文件已存在,我不確定如何編輯此程式碼以重新調整錯誤,以防止文件被編輯或覆蓋。
<?php if( $_POST["potus"] || $_POST["data"] ){ $name = $_POST['potus']; $data = $_POST['data']; static $ext = ".php"; if(file_exists($name)){ //rename exist file with random string $n = rand(); $filename = $name.$n.$ext; } else { $filename = $name.$ext ; // Creates file if it doesn't exist } file_put_contents($filename , $data); } else { echo "successfully posted"; exit(); } ?>
目前,當$name 已經存在時,你的程式碼將使用重命名的目標檔案名稱來保存數據,只需更改這部分,使其顯示錯誤並透過exit() 結束執行;
另一方面,為什麼您的程式碼會在 else 區塊中回顯「成功發布」?您應該告訴使用者並未輸入所有必需的數據,並要求他/她重新提交。
順便說一句,您允許使用者輸入一些內容,然後另存為 xxxx.php,這可能是一個嚴重的安全威脅! ! ! 請再考慮一下是否要這樣做它(或不是)
對於上面的(1)和(2),請將程式碼修改為: