САМОУЧИТЕЛЬ PHP 4



         

Сложные имена полей


Как вы, наверное, помните, элементы формы могут иметь имена, выглядящие, как элементы массива: A[10], B[1][text] и т.д. До недавнего времени (в третьей версии PHP) это касалось только "обычных" полей, но не полей закачки файлов. К счастью, в PHP версии 4 все изменилось в лучшую сторону.

Давайте применим указанные возможности в следующем примере формы и определим, какие переменные создаст PHP при ее отправке на сервер.

<form action="script.php" method=POST enctype=multipart/form-data>

<h3>Выберите тип файлов в вашей системе:</h3>

Текстовый файл: <input type=file name="File[text]"><br>

Бинарный файл: <input type=file name="File[bin]"><br>

Картинка: <input type=file name="File[pic]"><br>

<input type=submit name=Go value="Отправить файлы">

</form>

После того как программа script.php примет данные из формы, PHP создаст для нее следующие переменные:

r    ассоциативный массив $File, ключи которого — text, bin и pic, а соответствующие значения — имена временных файлов на сервере, созданных PHP при загрузке;

r    массив $File_name

все с теми же ключами и значениями — именами файлов в системе пользователя;

r    массив $File_type

с теми же ключами и значениями — типами соответствующих файлов;

r    массив $File_size

со значениями — размерами этих файлов.

Мы видим, информация об индексах в именах полей формы попала в ключи соответствующих массивов и сохранилась в них. Вы можете убедиться в том, что переменные действительно инициализированы, воспользовавшись вызовом функции Dump($GLOBALS), код которой приведен в конце главы 11, и в полезности которой вы теперь можете убедиться на примере.

Еще раз напоминаю, что PHP версии 3 неправильно работает с подобными именами полей. Учитывайте это, если собираетесь использовать старый интерпретатор.




Содержание  Назад  Вперед