0

我正在寻找一种在单击链接时使用 php 执行功能的方法。我的意思是单击此链接时删除一个项目。我的代码设置如下:

$files = glob("upload/*.*");

if(count($files) == 0){
echo "No files present";
} else {
foreach ( $files as $file ) {
    $array = explode("/", $file);
    //echo $array[1] . "<br>";
    echo "<tr>";
    echo "<td>" . $array[1] . "</td>";
    echo '<td><img height="70" width="auto" src=" ' . $file . '" ></td>';
    echo '<td><a href="">Delete item</a></td>';
    echo "</tr>";
}
}
4

1 回答 1

0

在您的主脚本中:

$files = glob("upload/*.*");
if(!count($files)){
   echo "No files present";
} else {
   foreach ($files as $file) {
      $array = explode("/", $file);
      echo "<tr>";
      echo "<td>" . $array[1] . "</td>";
      echo '<td><img height="70" width="auto" src=" ' . $file . '" ></td>';
      echo '<td><a href="delete.php?file='.rawurlencode($file).'">Delete item</a></td>';
      echo "</tr>";
   }
}

在您的删除脚本中:

if (isset($_GET['file']) && $file = rawurldecode($_GET['file'])) {
   if (file_exists('upload/' . $file)) 
      unlink($file);
}

您可能需要传入另一个$_GET参数(秘密令牌)以增加安全性 - 否则它会将您的上传目录打开到永久威胁。您可以发送随机sha1()散列或系统定义的配置值,并让您的删除脚本期望 40 个字符的字符串。

于 2013-01-27T20:40:19.730 回答