Иллюстрированный самоучитель по PHP

Файл do.php

Завершение действия

Ну и по окончании выполнения действий перенаправим посетителя на основную страницу файлового менеджера – в ту же директорию, в которой он и находился, передав сценарию на основной странице путь к ней через переменную fold в адресной строке. Для этого воспользуемся командой Header, передающей браузеру заголовки.

Если на странице запроса дополнительной информации посетителем была нажата кнопка "Отмена", то ни один из вышеприведенных блоков исполнения действия выполнен не будет – ни одна из переменных Sudal, $copy, $ren, $md определена не будет. А эта команда выполнится – т. е. после нажатия кнопки "Отмена" на странице запроса дополнительной информации посетитель окажется на основной странице файлового менеджера.

Header ("Location: index.php?fold=$folder");

Примечание
Заголовок – это данные, передаваемые браузеру до передачи самой web-страницы, сообщающие ему некоторые параметры передаваемого файла или определенные команды. Список всех возможных заголовков, которые обязаны поддерживать современные браузеры, можно найти в спецификациях протокола HTTP – они есть, например, на сайте
http://www.w3.org. PHP-команда Header выполняет всего одно действие – она просто передает то, что указано в ее параметре, в браузер, запросивший страницу, на которой она находится, в качестве заголовка.

Заголовок "Location" осуществляет перенаправление браузера на страницу, указанную в его параметре.

Сценарий можно завершить – посетитель уже на другой странице…

В результате после того как посетитель на странице запроса дополнительной информации нажмет кнопку начала действия, после небольшой паузы (длящейся ровно столько времени, сколько надо web-серверу для совершения этого действия) он вновь окажется на главной странице файлового менеджера, а заказанное им действие будет выполнено.

Однако если в процессе выполнения сценария возникнет ошибка (скажем, новую папку создать не удастся, так как окажется, что папка с таким же именем уже существует, или возникла проблема при переименовании файла – см. рис. 11.14), то на страницу будет выведено сообщение об ошибке, а команда Header не сработает – и тоже выдаст сообщение об ошибке (так как заголовок можно отправлять только до какого-либо вывода на страницу). Если вас это не устраивает – то можете либо предварять все команды символом "@" (он запрещает выводить сообщения об ошибках), либо снабдить страницу со сценариями выполнения действия в самом низу небольшим комментарием (с информацией вроде "Возникла ошибка, извините…") и ссылкой на главную страницу файлового менеджера.

Вот, собственно, и весь сценарий. Если желаете – можете его использовать в своих разработках. Или просто, просмотрев текст с комментариями, составить себе представление о том, как составлять программы на РНР.

Разумеется, сценарий можно улучшать. Первые два предложения по улучшению напрашиваются сразу – добавить в него возможность загрузки файлов и блок авторизации доступа. Код программ, реализующих эти предложения, уже рассматривался в предыдущих главах, так что вряд ли их реализация будет для вас сложной. (Не забудьте разве что вставить код проверки содержимого авторизационных переменных на все страницы файлового менеджера, а не только на основную.) Можно также научить сценарий выдавать осмысленные сообщения об ошибках, если они возникнут, заставить его выдавать подтверждения, скажем, в случае существования в папке назначения копирования файлов и папок, одноименных копируемым – дабы предотвратить случайное их переписывание. Но это все остается уже на ваше усмотрение.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.