2010-11-13 2 views
2

Простите мое невежество в этом ..Составные данные формы синтаксического анализа в PHP

Я думаю, я понимаю, что с помощью:

extract($_REQUEST); 

в PHP файл будет конвертировать HTML формы входа в соответствующую переменную. Например:

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

становится:

$author 

Является ли это правильно?

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

+4

Переменная $ author будет автоматически доступна, если REGISTER GLOBALS включен (что не рекомендуется). $ _REQUEST - это суперглобальная информация POST и GET. Я рекомендую вам прочитать о $ _POST, $ _GET и $ _FILES. – Andreas

+0

@andreas: ваш комментарий заслуживает ответа – zerkms

+0

@zerkms: размещение в качестве ответа тогда :) – Andreas

ответ

2

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

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

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

Если вы хотите иметь shortnames, если, например, это слишком много полей и запасные части много печатать, то Я бы рекомендовал использовать дополнительные параметры для извлечения():

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

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


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

4

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

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

Смежные вопросы