我得到了第一个学习任务来编写脚本。任务如下:创建用于上传文件的webform,文件上传后,它们显示在html表的同一页面上。这是我的第一项任务,我的首要任务就是让它发挥作用。所以我创建了一个表单和函数来扫描文件的上传文件夹,然后将它们放在数组中。之后数组用于构建html表的cucle中。请帮我构建正确的删除按钮,因为我无法让它工作。我的代码在这里:
<?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>";
获取以下错误:
注意:未定义的索引:第32行的D:\ PHP(1)\ xampp \ htdocs \ upload.php中的操作
注意:未定义的变量:第47行的D:\ PHP(1)\ xampp \ htdocs \ upload.php中的文件列表
答案 0 :(得分:1)
替换
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>";
你刚刚错过了文件列表中的s
答案 1 :(得分:1)
我认为你应该从字面上理解错误信息。您提供的代码示例中未定义变量$filelist
。
此外,您的第一个错误也被抛出,因为即使在未通过GET传递该参数的情况下,您也会尝试检查$_GET['action'] == 'deleted'
。你应该在使用之前检查参数是否存在,比较如下:
if (isset($_GET['action']) && $_GET['action']=='delete' && isset($_GET['file'])) {
答案 2 :(得分:0)
1-当你还没有定义$ i时,你正在删除$ i项目
2-如上所述
为防止变量和函数名称出错,您可以使用支持代码完成的文本编辑器。例如,可以提供帮助的非常轻便的工具是Geany。即使在Linux和Windows上的大项目中,我仍然使用这个。它不会使用大量的RAM和CPU,也不会花时间打开。
在AND(&amp;&amp;)条件块中,条件从左到右读取,一旦某些内容不成立,块就会中断,因此您更可能希望先测试关键内容,这样就不会在街区进一步陷入困境。