22.04.2014 Views

php_mysql_dreamweaver_mx_2004 разработка web сайтов.pdf

php_mysql_dreamweaver_mx_2004 разработка web сайтов.pdf

php_mysql_dreamweaver_mx_2004 разработка web сайтов.pdf

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Глава 15. Управление файлами через Web-интерфейс 357<br />

Давайте предположим, что мы создали в папке articles другую папку, с именем,<br />

скажем, private. Теперь нам нужно перейти в эту папку. Мы щелкаем<br />

кнопку Перейти в папку articles страницы Files.<strong>php</strong>, потом выбираем в раскрывающемся<br />

списке f oider_name имя нужной нам папки (private) и нажимаем<br />

кнопку Перейти. Что произойдет? Посмотрим на приведенный ранее сценарий.<br />

Обработчик РНР сначала поместит имя выбранной нами папки в переменную<br />

$current_dir, а потом, встретив выражение<br />

chdir($_SERVER["DOCUMENT_ROOT"] . $current_dir);<br />

добавит ее к пути корневой папки сайта. А папка private находится вовсе не<br />

там, так что приведенное ранее выражение не выполнится!<br />

Если делать все правильно, то нам будет нужно добавить папку private к текущей<br />

папке, то есть к папке articles, чтобы получить путь /articles/private. Значит, нам как-то нужно отслеживать, щелкнули ли<br />

мы по одной из кнопок Перейти в папку uploads или Перейти в папку articles<br />

либо выбрали нужную нам папку в раскрывающемся списке foider_name.<br />

И соответственно этому формировать путь папки, в которую мы хотим перейти.<br />

Проще всего для этого использовать особое скрытое поле. Давайте создадим<br />

его ВО всех трех формах: uploads_folder, articles_folder И folders_mgmt.<br />

У этого поля будет одинаковое имя — add, но разные значения. В формах<br />

uploads_folder и articles_folder оно будет иметь значение о, а в форме<br />

folders_mgmt — 1.<br />

И еще нам будет нужно как-то сохранить путь папки, просматриваемой<br />

в данный момент. Для этого используем переменную уровня сессии curdir.<br />

И нам останется в очередной раз исправить приведенный ранее сценарий:<br />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!