2017-05-04 11 views
-1

フォルダから1つのファイルを削除するにはどうすればよいですか?削除リンクをクリックすると、アップロードされたすべてのファイルがフォルダから削除されます。フォルダから1つのファイルを削除するにはどうすればよいですか?

リンク:

<td><a href="Ad_delete.php?$Id=<?php echo $Row['Id'];?>" onClick="return confirm('Are you sure you want to delete this selected file ?')">Delete</a> 

コード:

<?php 

// Including the database connection file 
include_once 'Ad_updbconnect.php'; 

// Getting Id of the data from url 
$Id = $_GET['Id']; 

$Del = glob('uploads/*'); // Get all file names 
foreach ($Del as $File) { 
    if (is_file($File)) { 
     unlink($File); // delete file ! 
    } 
} 

// Deleting the row from table 
$Result = mysqli_query ($Con, "DELETE FROM ibgsec_uploads WHERE Id=$Id"); 
$Row = mysqli_fetch_array($Result); 

// Redirecting to the display page. 
header("location: Ad_uploads.php"); 
?> 

これは私が働いている残された唯一の事ですが、私は適切にコマンドを実行するための多くの方法を試みたが、それしました動作しません。

答えて

0

あなたのコードは、アップロードされたすべてのファイルを明示的に削除します。あなたは何を期待しましたか?

$Del = glob('uploads/*'); // Get all file names 
foreach ($Del as $File) { 
    if (is_file($File)) { 
     unlink($File); // delete file ! 
    } 
} 

$Idはファイル名ですか?危険だと思われますが、あなたはそれを$Fileと比較しようとするでしょう。 何か$Fileを削除してください。

また、$Id<a href="Ad_delete.php?$Id=<?php echo $Row['Id'];?>"という名前のパラメータを指定していますが、Id$Id = $_GET['Id'];という名前で取得しています。次に、データベースクエリにそれを含めることで、SQLインジェクションまで自分自身を開きます。

関連する問題