1

不知道我应该如何命名帖子的标题。

我的页面上有一个提交按钮,它正在为我创建一个文件夹。我一按下它。该网站自动刷新。我的文档中没有设置脚本说明页面应该刷新。它只是在我提交任何东西时发生,对吗?

if (isset($_POST['createDir'])) {   
    $dir = $_POST['dirname'];
    $targetfilename = PATH . '/' . $dir;
    if (!is_dir($targetfilename)) {
        mkdir($targetfilename);
        chmod($targetfilename, 0777);
    } else {
        echo "Folder exists!";
    }   
}

在我的脚本中再往下一点,我有同样的事情来删除文件和文件夹。

if (isset($_POST['deleteBtn'])) {
    chmod(PATH, 0777);
    foreach ($_POST['deletefiles'] as $value) {
            unlink(PATH . '/' . $value);
    }
    echo "<META HTTP-EQUIV=Refresh CONTENT='0'>"; //doesn't work without it!
}

如果我单击提交按钮删除文件夹,页面不会刷新。即使脚本有效并且文件被删除。创建文件夹的脚本和删除文件的脚本之间有什么区别。我真的不明白。

关于马特

4

1 回答 1

1

好的,在我们在评论中进行了长时间的对话之后,我想我现在可以有把握地说这就是问题所在。考虑到这是您的代码执行的顺序:

  1. 如果按下创建文件夹按钮,则创建文件夹
  2. 遍历目录并将所有文件路径存储在变量中
  3. 如果按下删除文件夹/文件按钮,则删除文件夹/文件
  4. 显示在步骤 2 中检索到的目录内容。

在那种情况下,错误是上面的步骤2和3应该切换!如果您首先列出所有文件,然后删除一些文件,则它不会反映在输出中,因为该列表是在删除之前获得的。

通常,您希望首先处理任何用户命令以创建/删除/修改文件和目录,并且仅在最后一刻列出文件系统的最新状态。

于 2010-07-30T09:28:19.987 回答