php: разница между методами isset? - PullRequest
1 голос
/ 29 июля 2010

не уверен, как мне назвать название поста.

У меня на странице есть кнопка отправки, которая создает папку для меня. как только я нажму это. сайт АВТОМАТИЧЕСКИ обновляется. В моем документе не установлен скрипт, который говорит, что страница должна обновиться. это просто происходит, когда я отправляю что-нибудь, верно?

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 Ответ

1 голос
/ 30 июля 2010

Хорошо, после нашего расширенного разговора в комментариях, я думаю, что теперь я могу с уверенностью сказать, что это то, что идет не так.Учитывая, что ваш код выполняется в следующем порядке:

  1. , если была нажата кнопка создания папки, создайте папку
  2. , запустите ее и сохраните все пути к файлам в переменной
  3. если была нажата кнопка удаления папки / файла, удалите папку / файл
  4. , чтобы отобразить содержимое каталога, полученное на шаге 2.

В этом случае ошибкаявляется то, что вышеуказанные шаги 2 и 3 должны быть переключены !Если вы сначала перечислите все файлы, а затем удалите некоторые, они не будут отражены в выходных данных, поскольку этот список получен непосредственно перед удалением.

В общем случае вы сначала должны обработать любую пользовательскую команду для создания /удаляйте / изменяйте файлы и каталоги и только в последний момент перечисляйте обязательное актуальное состояние файловой системы.

...