Многочастный анализ данных в PHP - PullRequest
2 голосов
/ 13 ноября 2010

прости мое невежество в этом ..

Мне кажется, я понимаю, что с помощью:

extract($_REQUEST);

в php-файле преобразует входные данные html-формы в соответствующую переменную. Например:

<input type="text"name="author"/>

становится:

$author

Это правильно?

Однако я не совсем понимаю, как обращаться с многочастной формой. Например, один с 1 файлом (изображением) и двумя текстовыми вводами. Как извлечь эти данные и поместить их в переменные?

Ответы [ 2 ]

4 голосов
/ 13 ноября 2010

Переменная $ author будет автоматически доступна, если включен параметр REGISTER GLOBALS (что не рекомендуется). $ _REQUEST - это суперглобальный холдинг POST и GET.

Я рекомендую прочитать о $ _POST, $ _GET и $ _FILES

2 голосов
/ 13 ноября 2010

Хорошо, после очередного прочтения, ваше понимание экстракта верно. Но обратите внимание, что вход author обычно будет доступен как $_REQUEST["author"] в любом случае. Вообще избегайте их извлечения.

Если вы, например, хотите, чтобы значение использовалось повторно для ввода формы, вы можете написать:

<input name="author" value="<?=htmlspecialchars($_REQUEST["author"])?>">

Если вы хотите иметь короткие имена, например, если они содержат слишком много полей и не требуют много ввода, я бы рекомендовал использовать дополнительные параметры для extract ():

extract($_REQUEST, EXTR_PREFIX_ALL, "i_");

Это сгенерирует переменную $i_author и все остальные поля ввода с префиксом $i_. Считается, что это имеет меньше побочных эффектов с другими (гипотетическими) локальными или глобальными переменными. Также вы можете использовать array_map("htmlspecialchars",$_REQUEST) для извлечения, если это помогает обработке.


Данные многоэлементных форм заполнят массив $ _FILES дополнительно , который имеет другую структуру. Смотрите руководство по PHP http://php.net/manual/en/features.file-upload.php

...