Wie kann ich einen Fehler bei der Größenänderung des Formulars verursachen, wenn die Datei bereits vorhanden ist, wodurch verhindert wird, dass die Datei bearbeitet oder überschrieben wird?
P粉949848849
P粉949848849 2023-09-13 22:06:46
0
1
665

Wie mache ich einen Fehler bei der Größenänderung des Formulars, wenn die Datei bereits vorhanden ist, um zu verhindern, dass die Datei bearbeitet oder überschrieben wird?

Ich bin mir nicht sicher, wie ich diesen Code bearbeiten soll, um den Fehler erneut zu beheben und zu verhindern, dass die Datei bearbeitet oder überschrieben wird, wenn die Datei bereits vorhanden ist.

<?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

Antworte allen(1)
P粉895187266
  1. 当前,当 $name 已经存在时,你的代码将使用重命名的目标文件名来保存数据,只需更改这部分,使其显示错误并通过 exit() 结束执行;

  2. 另一方面,为什么您的代码会在 else 块中回显“成功发布”?您应该告诉用户并未输入所有必需的数据,并要求他/她重新提交。

  3. 顺便说一句,您允许用户输入一些内容,然后另存为 xxxx.php,这可能是一个严重的安全威胁!!!请再考虑一下是否要这样做它(或不是)

对于上面的(1)和(2),请将代码修改为:

<?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();     
} 
?>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage