使用php中的链接删除文件

时间:2012-03-27 13:34:48

标签: php file anchor delete-file

我正在制作一个在独立电脑上运行的内部网客户经理。商店将为每个客户记录添加文件,当每个记录加载时,每个客户文件夹的内容在A标签内的屏幕上回显,以便工作人员可以点击它并查看已添加的文件那个客户。

我正在尝试为每个用户记录页面添加删除链接,但我没有太多运气。我使用以下内容,我不确定是否需要获取另一个php文件来删除,或者我是否可以将其放入这样的链接中?。

 echo '<a href="unlink(./customer-files/'.$customerID.'/'.$filename->getFilename().');">Delete File</a>';

点击链接时,我得到的是&gt;&gt;

The requested URL /customermgr/unlink(./customer-files/5/customeraddnewfile.jpg); was     not found on this server.

编辑&gt;&gt;&gt;&gt;

这是在本地安装,没有连接到互联网,因此安全性不是问题,因为没有任何人因为没有连接到互联网而进入此区域。我只是在寻找最快捷,最简单的方法,而不必编写额外的代码:)。

4 个答案:

答案 0 :(得分:3)

你是...试图在服务器上运行任意PHP代码链接?你知道如果它有效会有多么不安全吗?

相反,只需将您的链接设为:

echo '<a href="unlink.php?id='.$customerID.'&file='.$filename->getFilename().'">Delete</a>';

然后您的unlink.php文件可能类似于:

$f = "customer-files/".$_GET['id']."/".$_GET['file'];
if( file_exists($f)) unlink($f);

但请注意安全隐患。例如,确保文件名中没有../的实例。

答案 1 :(得分:1)

你不能这样做。 您需要在单独的文件中进行unlink调用。 在链接中,您提供id或其他重新声明要删除的文件,然后在另一个文件中,您将获得此ID并删除相应的文件(在检查允许的操作后)。

例如:

链接文件中的

<a href="unlink.php?name=customernewfile.jpg">Delete me !</a>

在你的“unlink.php”文件中:

...
unlink('my/path/to/files/'.$_GET['name']);

这是一个不可靠的例子,不要像这样使用它。

答案 2 :(得分:0)

您不能像通过HTML那样运行这样的命令。您需要创建一个新的PHP文件并链接到该文件:

<a href='delete-file.php?file=fileid'>

然后php页面将运行unlink命令。

但请注意,此处存在严重的安全问题,因为人们可以输入他们选择的任何文件名(无论您在HTML中设置了什么)。还要注意,他们可以通过在文件路径中使用./来上传目录,并删除更高级别的文件

答案 3 :(得分:0)

如果这会有效(它没有),这意味着任何人都可以通过更改href本身删除基本上任何文件。

我不打算抨击你的想法有多糟糕,但是 - 你需要另一个抓取查询字符串然后在目标上运行unlink()的php文件。