создание и разработка веб-сайтов
поисковая оптимизация и реклама
статьи о программировании и веб-дизайне

Ссылки по теме:
 

Формы, данные и PHP

Настало время обратиться к формам. На различных сайтах Вам, наверное, часто приходилось заполнять различные формы при регистрации, при посылке писем через веб-интерфейс, участвуя во всевозможных интернет-опросах, заполняя строку поиска в поисковых системах. Так вот поля, в которые Вам приходилось вводить ту или иную информацию, принадлежат к различным частям форм.

В html-коде форма записывается при помощи тега

<FORM name="formName" action="script.name" method="POST | GET" enctype="application/x-www-form-urlencoded | multipart/form-data"> Здесь записываются поля формы. </FORM> «name» - уникальное имя формы, «action» - путь к скрипту обабатывающему данные формы, «method» - метод передачи данных (GET - через строку браузера, POST - в теле запроса браузера). Методом POST можно передавать больший объем информации. По умолчанию устанавливается метод GET. «enctype» - устанавливает MIME-тип для данных передающихся вместе с формой. Обычно не пишется, однако необходимо установить тип «multipart/form-data», если через форму передается файл. Внутри формы записываются поля формы. Поля формы бывают текстовыми (в такие поля обычно вводится строка текстовых данных): <INPUT type="text" name="textName" value="DefaultValue"> Здесь «value» - значение поля формы, которое будет отображаться при загрузке формы (можно оставлять пустым). Поля формы бывают списками (такие поля содержат списки значений, которые можно выбирать нажатием левой клавиши мыши): <SELECT name="selectName"> <OPTION value="Value1"> <OPTION value="Value2"> <OPTION value="Value3"> ... <OPTION value="ValueN"> </SELECT> В поле формы можно загрузить путь к файлу (такое поле передает в теле запроса файл): <INPUT type="file" name="fileName"> Поле формы может быть флагом или переключателем: <INPUT type="radio"> <INPUT type="checkbox" CHECKED> «CHECKED» - говорит о том, что элемент в данный момент выбран. Для больших текстовых полей однострочного режима недостаточно, поэтому в этом случае текст помещается в текстовую зону (TEXTAREA): <TEXTAREA name="bigTEXT" cols="ANumber" rows="BNumber"> Default Text </TEXTAREA> Здесь «rows» и «cols» - количество строк и колонок текстовой зоны, иными словами высота и ширина текстового поля. Также поля формы бывают кнопками (эти поля на событие submit отправляют поля формы скрипту на обработку, на событие reset - перезагружают форму, приводя ее к исходному состоянию): <INPUT type="reset" name="ResetForm" value="Reset"> <INPUT type="submit" name="SendForm" value="Send"> Для примера напишем код формы, отправляющий данные скрипту list.php, который будет возвращать данные формы: <FORM name="send" action="list.php" method="post"><input type="hidden" name="phpMyAdmin" value="pYlgg5oTS0DALx4crrTrVHVzGK9" /> <INPUT type="text" name="val1" size=20 value="Поле 1"> <INPUT type="text" name="val2" size=30 value="Поле 2"> <SELECT name="val3"> <OPTION value="Value1"> <OPTION value="Value2" SELECTED> <OPTION value="Value3"> </SELECT> <INPUT type="submit" name="SendForm" value="Send"> </FORM> Если вы вставите этот код в html-страницу (например, list.html), то при открытии этой страницы отобразится форма с двумя текстовыми полями и списком выбора значений (Значение «Value2» будет выбрано по-умолчанию). Завершать форму будет кнопка с надписью «Send». При нажатии на кнопку «Send» данные отправляются скрипту list.php, который мы сейчас с Вами и рассмотрим. Для начала поставим задачу, которую должен выполнять скрипт list.php, а именно скрипт будет подхватывать скриптом значения данных формы и выводить их обратно на страницу. #файл list.php <?php $val=array(); /* если скрипт загрузился в результате нажатия кнопки Send */ if(isset($_POST['SendForm'])){ /* присваиваем переменным значения полей формы */ $val[] = $_POST['val1']; $val[] = $_POST['val2']; /* переменной $val3 присваивается значение OPTION SELECTED */ $val[] = $_POST['val3']; } /* выводим массив $val в браузер */ foreach($val as $v){ echo "<div>--".$v."--</div>";} ?> Из листинга скрипта видно, что данные из формы записываются в глобальный массив $_POST, значения которого доступны в любой части программы на PHP. В результате работы скрипта в браузер выведется следующая информация: Результат работы скрипта: --Поле 1-- --Поле 2-- --Value2--

В следующей статье мы попробуем реализовать отправку данных формы по электронной почте с использованием функции PHP mail()



17 апреля 2009 г.