Первый сайт на PHP

Способы выбора действияЛучше тот, что справа.



Рисунок 11.1. Способы выбора действия. Лучше тот, что справа.


Комментарий:

Возникает вопрос: а как сценарий-обработчик различит, какая кнопка из четырех была нажата? Очень просто. Каждой кнопке необходимо присвоить имя и проверять в сценарии-обработчике значение переменной с этим именем. Кнопка - это часть формы, следовательно, для нее тоже создается переменная с тем же именем, а также элементы массивов $ HTTP_POST_VARS[имя кнопки] и в РНР версии 4.1 и старше - и $ POST [имя кнопки]. Обработка формы происходит так, что в ту переменную, имя которой совпадает с именем нажатой кнопки, будет помещено значение value этой кнопки (т. е. то, что было надписью на ней), переменные же остальных трех кнопок будут пустыми. На основании «пустоты» или «непустоты» соответствующих переменных и будем судить о том, какое действие выбрал посетитель.

Для того, чтобы посетитель имел возможность указать сценарию объекты действий - т. е. над какими файлами эти действия должны производиться - достаточно против каждого имени файла поставить checkbox (пункт, который можно отметить галочкой, см. на Рисунок 11.3-11.6), разместив все checkbox'bi в единой форме, а затем анализировать состояние checkbox`ов в программе-обработчике формы.

Итак, в первом файле нашего файлового менеджера должна располагаться форма, содержащая список файлов и папок в текущей директории (выводимый специальным сценарием, позволяющим также перемещаться по вложенным папкам) со спескЬох'ами возле каждого названия файла или папки, а в низу формы должны располагаться четыре кнопки типа submit с различными именами.

Но простого выбора действия недостаточно для начала его выполнения. Перед тем, как совершать работу, у посетителя необходимо еще выяснить:

  • для проведения копирования - папку, в которую копировать выбранные файлы;
  • для совершения переименования - новые имена для переименовываемых файлов;
  • для создания новой папки - имя этой новой папки;
  • для удаления выбранных файлов - спрашивать ничего не надо, но не мешало бы вывести подтверждение удаления.

  • Следовательно, необходим промежуточный этап - запрос дополнительных данных от посетителя. Именно на страницу со сценариями, запрашивающими нужные сведения, и должен совершаться переход с основной страницы менеджера файлов при выборе посетителем какого-либо действия. В зависимости от выбранного действия запрашивается соответствующая информация. Лучше всего осуществить ее

    ввод в расположенную на промежуточной странице пользовательскую форму.

    После получения от посетителя дополнительной информации можно и выполнять сами действия. Сценарии, выполняющие их, должны находиться в отдельном файле, который будет назначен обработчиком форм на промежуточной странице.

    После выполнения действий вполне логично осуществлять автоматический переход на основную страницу файлового менеджера.

    Итого для реализации сценария потребуется создать три файла:

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


  • файл запросов, запрашивающий у посетителя информацию для совершения выбранного действия - место назначения копирования, новые имена для переименованных файлов, имя для новосозданной папки или выдающий запрос на подтверждение удаления. Назовем его zapros.php.


  • файл действия, собственно выполняющий выбранное действие, а после его выполнения - автоматически перенаправляющий посетителя на основной файл.


  • Графическую схему смотрите на Рисунок 11.2.


    Содержание раздела