Maison  >  Questions et réponses  >  le corps du texte

Comment puis-je créer une erreur de redimensionnement de formulaire si le fichier existe déjà, empêchant ainsi sa modification ou son écrasement ?

Comment créer une erreur de redimensionnement de formulaire si le fichier existe déjà pour empêcher que le fichier ne soit modifié ou écrasé ?

Je ne sais pas comment modifier ce code pour réajuster l'erreur afin d'empêcher la modification ou l'écrasement du fichier si le fichier existe déjà.

<?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粉949848849371 Il y a quelques jours533

répondre à tous(1)je répondrai

  • P粉895187266

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

    1. Actuellement, lorsque $name existe déjà, votre code utilisera le nom de fichier cible renommé pour enregistrer les données, modifiez simplement cette partie pour qu'elle affiche une erreur et termine l'exécution avec exit() ;

    2. D'un autre côté, pourquoi votre code fait-il écho à "publié avec succès" dans le bloc else ? Vous devez informer l'utilisateur que toutes les données requises n'ont pas été saisies et lui demander de soumettre à nouveau.

    3. BTW, vous autorisez l'utilisateur à saisir quelque chose, puis à l'enregistrer sous xxxx.php, ce qui pourrait constituer une menace sérieuse pour la sécurité ! ! ! Veuillez y réfléchir à deux fois si vous voulez le faire (ou pas)

    Pour (1) et (2) ci-dessus, veuillez modifier le code comme suit :

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

    répondre
    0
  • Annulerrépondre