cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimanakah saya boleh membuat ralat ubah saiz jika fail sudah wujud, menghalang fail daripada diedit atau ditulis ganti?

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粉949848849P粉949848849475 hari yang lalu655

membalas semua(1)saya akan balas

  • P粉895187266

    P粉8951872662023-09-14 15:59:48

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

    balas
    0
  • Batalbalas