Файл zapros.php
Сценарии этого файла запрашивают от посетителя дополнительную информацию для проведения действия. Начало сценария:
<html><?php
Сразу же выведем заголовок формы, общий для всех четырех вариантов запросов. В нем точно так же передадим выполняющему собственно действия сценарию на странице do.php имя текущей папки:
echo ("<form action=do.php?folder=$folder method=post>");
Бесспорно, можно было бы и не передавать имя текущей папки, а сообщать обработчику конкретные имена файлов, над которыми совершается действие, с полным путем к ним, однако так все-таки проще.
Удаление, запрос информации
Если на основной странице файлового менеджера – index.php – была нажата кнопка "Удалить", имя которой – "udal", то значение переменной $udal' в сценарии на странице-обработчике будет отличным от нуля (вернее, оно будет представлять собой значение атрибута value кнопки "Удалить" на основной странице – собственно слово "Удалить"). Если была нажата какая-нибудь другая кнопка, то значение переменной $udal определено не будет. Поэтому для того, чтобы узнать, было ли посетителем выбрано в качестве желаемого действия удаление, проверим содержимое этой переменной:
if ($udal!="")
Выведем небольшое пояснение посетителю…
echo ("Удалить файлы?<br>");
…и список файлов, которые планируется удалить. Их список передан в форму в массиве $fl. В этот массив включены параметры value тех checkbox'oв, которые были отмечены посетителем на основной странице менеджера файлов перед тем, как нажать кнопку с названием действия (а в эти параметры, как вы наверняка помните, были помещены имена файлов и папок, отображавшихся на основной странице файлового менеджера – путь к ним передан через переменную Sfolder в адресной строке). Переберем все элементы массива $ f 1…
foreach ($fl as $i) {
…и выведем их значения – имена файлов, подлежащих удалению. Вместе с именем папки, в которой они расположены – его сценарий на этой странице получил через адресную строку.
Ну а для того, чтобы иметь возможность эти имена передать сценарию на следующей странице, выполняющему собственно действие.
Строго говоря, вместо имен переменных, равных именам элементов формы, обрабатываемой сценарием на этой странице, следовало бы использовать имена соответствующих элементов массивов SHTTP_POST_VARS[] и (в РНР начиная с версии 4.1) $_POST[]. Однако для более легкого понимания кода выбран первый вариант. При использовании настоящего сценария на практике вы можете сами заменить имена переменных на имена элементов упомянутых массивов.
Рядом с каждым именем удаляемого файла поместим скрытое поле, в которое поместим это самое имя. Сценарию, выполняющему удаление, останется только совершить эту операцию над теми файлами, имена которых ему будут переданы.
Имя же папки, в которой эти файлы располагаются, передается сценарию – исполнителю действия через адресную строку, указанную в заголовке формы запроса информации – точно так же, как оно было передано данному сценарию, запрашивающему дополнительную информацию. Вы могли видеть этот заголовок несколькими абзацами выше.