Bagaimanakah saya boleh membuat ralat ubah saiz jika fail sudah wujud, menghalang fail daripada diedit atau ditulis ganti?
P粉949848849
P粉949848849 2023-09-13 22:06:46
0
1
647

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();     
} 
?>

P粉949848849
P粉949848849

membalas semua(1)
P粉895187266
  1. 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() ;

  2. 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.

  3. 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:

<?php  
if( $_POST["potus"] || $_POST["data"] ){        
   $name = $_POST['potus'];        
   $data = $_POST['data'];         
   static $ext = ".php";       

// Checking the file exists with extn .php
if(file_exists($name.$ext)){          

   echo "<script>alert('Filename already exists ! Cannot proceed !');history.go(-1);</script>";
   exit();

//$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";     
   echo "You have not entered all the required data ! Please re-submit the data";

   exit();     
} 
?>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan