Bagaimana untuk membuat ralat ubah saiz jika fail sudah wujud untuk mengelakkan fail daripada diedit atau ditimpa?
Saya tidak pasti cara mengedit kod ini untuk melaraskan semula ralat bagi mengelakkan fail daripada diedit atau ditimpa jika fail itu sudah wujud.
<?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(); } ?>
Pada masa ini, apabila $name sudah wujud, kod anda akan menggunakan nama fail sasaran yang dinamakan semula untuk menyimpan data, cuma tukar bahagian ini supaya ia memaparkan ralat dan menamatkan pelaksanaan dengan exit() ;
Sebaliknya, mengapa kod anda bergema "berjaya diterbitkan" dalam blok else? Anda harus memberitahu pengguna bahawa tidak semua data yang diperlukan telah dimasukkan dan minta dia menyerahkan semula.
BTW, anda membenarkan pengguna memasukkan sesuatu dan kemudian menyimpannya sebagai xxxx.php, yang boleh menjadi ancaman keselamatan yang serius! ! ! Sila fikir semula jika anda mahu melakukannya (atau tidak)
Untuk (1) dan (2) di atas, sila ubah suai kod kepada: