不能使用$_GET方法删除按钮


Can't make delete button using $_GET method

我的第一个学习任务是制作一个脚本。任务如下:创建一个用于上传文件的webform,文件上传完成后以html表格的形式显示在同一页面上。这是我的第一个任务,我的首要任务就是让它成功。所以我创建了一个表单和函数来扫描上传文件夹中的文件,然后将它们放入数组中。afterarray在构建html表的循环中使用。请帮我建立正确的删除按钮,因为我只是不能得到它的工作。我的代码在这里:

<?php
if ($_GET['action']=='delete' && isset($_GET['file'])) {
        unlink($dir.$filelist[$i]);
        echo "File ".$filelist[$i]. " has been removed";
}
 
 
//table with files
echo"<table border=1 cellpading=5 cellspasing=0>
<tr><th>#</th><th>Filename</th><th>Path</th><th>File extenstion</th><TH>File Size<th>Remove file?</th></tr>";
for ($i=0; $i <count($fileslist) ; $i++) {
        echo "<tr>";
        echo"<td>$i</td><td>". $fileslist[$i]."</td>";
        echo "<td><a href=".$dir.$fileslist[$i].">".$fileslist[$i]."</a></td>";
        echo "<td>".$ext=pathinfo(($dir.$fileslist[$i]), PATHINFO_EXTENSION)."</td>";
        echo "<td>".$size= filesize_get($dir.$fileslist[$i])."</td>";
        echo "<td> <a href='"upload.php?action=delete&file=".$filelist[$i].">Delete </a></td>";
        echo "<tr>";
}
echo"</tabe>";

得到以下错误:

注意:未定义的索引:操作在D:'PHP(1)'xampp'htdocs'upload.php第32行

注意:未定义变量:filelist在D:'PHP(1)'xampp'htdocs'upload.php第47行

Replace

echo "<td> <a href='"upload.php?action=delete&file=".$filelist[$i].">Delete </a></td>";

echo "<td> <a href='"upload.php?action=delete&file=".$fileslist[$i].">Delete </a></td>";

你只是漏掉了fileslist

中的s

我认为你应该从字面上理解这个错误信息。您的变量$filelist没有在您提供的代码示例中定义。

还抛出了第一个错误,因为您试图检查$_GET['action'] == 'deleted',即使该参数没有通过GET传递。在使用参数进行比较之前,应该检查参数是否存在,如下所示:

if (isset($_GET['action']) && $_GET['action']=='delete' && isset($_GET['file'])) {

1-当$i尚未定义时,您正在删除$i-th项

2-如上述答案所述

为了防止变量和函数名中的错误,您可以使用支持代码补全的文本编辑器。例如,Geany是一个非常轻巧的工具。在linux和windows上,我仍然在大项目中使用这个。它不会使用大量的内存和CPU,也不会花时间打开。

在AND (&&)条件块中,条件是从左到右读取的,一旦有不正确的内容,块就会中断,所以您更可能想先测试关键内容,这样它就不会在块中进一步出现问题。