1

我正在尝试创建一个自毁文件。我的意思是,如果条件等于 true,则文件会自行删除。

在我看来,以下代码应该可以解决问题。但是,它什么也没做。我究竟做错了什么?

<?php 
    phpinfo();
    // The following should be activated when the url is 
    // selfdestruct.php?delete=1, correct?
    if ($_GET['delete']==1) {
        $file = 'selfdestruct.php';
        unlink($file);
    }
?>

提前感谢您的帮助!我很感激!:-)

4

3 回答 3

0

Check these steps:

  1. Put error_reporting(E_ALL); on the first line
  2. Check your permissions
  3. Put the delete code above anything else, after "error_reporting"

You should do the following:

if (isset($_GET['delete']) && $_GET['delete'] == '1') {
    unlink(FILE);
}
于 2013-04-25T07:53:06.733 回答
0

你检查过你的 web 服务器和 php 日志文件吗?可能是权限问题,或者 Web 服务器使文件保持打开状态,因此无法删除。

另外,尝试将文件的整个本地路径传递给unlink。您可能会使用unlink( _ FILE _ )

另外,这是在 Windows 还是 Linux 上?他们处理“打开”文件的方式略有不同。我在 Linux 上对此进行了测试,它适用于

 unlink(__FILE__);

有关操作系统和正在运行的 Web 服务器等的信息可能很好地添加到这种性质的问题中。

于 2013-04-25T07:50:56.820 回答
0

我通常这样做:(使用你的 GET)

if ($_GET['delete']==1) {
    unlink( __FILE__ ) or die("Please delete this file.");
    echo "This file has been deleted.<br />";
}

如果文件无法删除,则退出脚本并且不会显示最后的回显。

而且,您的代码应该可以工作,您可以进行快速测试以检查是否满足条件,但无法删除文件是:

if ($_GET['delete']==1) {
    echo "Works!";
}
于 2013-04-25T07:55:45.810 回答