php:isset方法之间的区别?

时间:2010-07-28 23:56:23

标签: php isset

不确定我应该如何命名帖子的标题。

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

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!
}

如果我单击提交按钮删除页面不刷新的文件夹。即使脚本有效,文件也会被删除。创建文件夹的脚本和删除文件的另一个脚本之间的区别在哪里。我实际上并没有真正理解它。

关于亚光

1 个答案:

答案 0 :(得分:1)

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

  1. 如果按下了创建文件夹按钮,则创建文件夹
  2. 运行目录并将所有文件路径存储在变量
  3. 如果按下了删除文件夹/文件按钮,请删除文件夹/文件
  4. 显示在步骤2中检索的目录内容。
  5. 在这种情况下,错误是上面的步骤2和3 应该切换!如果您首先列出所有文件,然后删除一些文件,它将不会反映在输出中,因为该列表是在删除之前获得的。

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