Содержание

10) обработка PHP-форм — CoderLessons.com

Что такое форма?

Когда вы входите на веб-сайт или в свой почтовый ящик, вы взаимодействуете с формой.

Формы используются для получения ввода от пользователя и передачи его на веб-сервер для обработки.

 Диаграмма ниже иллюстрирует процесс обработки формы.

Форма – это тег HTML, который содержит элементы графического интерфейса пользователя, такие как поле ввода, переключатели переключателей и т. Д.

Форма определяется с помощью тегов <form> … </ form>, а элементы графического интерфейса определяются с использованием таких элементов формы, как ввод.

В этом уроке вы узнаете

  • Когда и почему мы используем формы?
  • Создать форму
  • Метод POST
  • ПОЛУЧИТЬ метод
  • GET vs POST Методы
  • Обработка данных регистрационной формы
  • Больше примеров

Когда и почему мы используем формы?

  • Формы пригодятся при разработке гибких и динамических приложений, которые принимают пользовательский ввод.
  • Формы могут быть использованы для редактирования уже существующих данных из базы данных

Создать форму

Мы будем использовать HTML-теги для создания формы. Ниже приведен минимальный список вещей, необходимых для создания формы.

  • Открытие и закрытие тегов формы <form>… </ form>
  • Форма отправки формы POST или GET
  • URL отправки, который будет обрабатывать отправленные данные
  • Поля ввода, такие как поля ввода, текстовые области, кнопки, флажки и т. Д.

Код ниже создает простую форму регистрации

<html>
<head>
	<title>Registration Form</title>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
    <h3>Registration Form</h3>
    <form action="registration_form.php" method="POST"> First name:
        <input type="text" name="firstname"> <br> Last name:
        <input type="text" name="lastname"> 
        <input type="hidden" name="form_submitted" value="1" />
        <input type="submit" value="Submit">
    </form>
</body>
</html>

При просмотре вышеуказанного кода в веб-браузере отображается следующая форма.

ВОТ,

  • <form…>… </ form> являются открывающими и закрывающими тегами формы
  • action = “registration_form.php” method = “POST”> указывает целевой URL и тип отправки.
  • Имя / Фамилия: метки для полей ввода
  • <input type = ”text”…> являются тегами поля ввода
  • <br> это новая строка тега
  • <input type = “hidden” name = “form_submitted” value = “1” /> – это скрытое значение, которое используется для проверки, была ли отправлена ​​форма или нет
  • <input type = “submit” value = “Submit”> – кнопка, которая при нажатии отправляет форму на сервер для обработки

Отправка данных формы на сервер

Атрибут action формы указывает URL отправки, который обрабатывает данные. Атрибут метода указывает тип отправки.

PHP POST метод

  • Это встроенная в PHP суперглобальная переменная массива, которая используется для получения значений, отправленных методом HTTP POST.
  • Доступ к переменной массива возможен из любого скрипта в программе; это имеет глобальную сферу.
  • Этот метод идеален, если вы не хотите отображать значения записей формы в URL.
  • Хорошим примером использования метода post является отправка данных для входа на сервер.

Он имеет следующий синтаксис.

<?php
 $_POST['variable_name'];
?>

  ВОТ,

  • «$ _POST […]» – это массив PHP
  • «Variable_name» – это имя переменной URL.

PHP GET метод

  • Это встроенная в PHP суперглобальная переменная массива, которая используется для получения значений, отправленных методом HTTP GET.
  • Доступ к переменной массива возможен из любого скрипта в программе; это имеет глобальную сферу.
  • Этот метод отображает значения формы в URL.
  • Он идеально подходит для форм поисковых систем, так как позволяет пользователям отмечать результаты.

Он имеет следующий синтаксис.

<?php
$_GET['variable_name'];
?>

  ВОТ,

  • «$ _GET […]» – это массив PHP
  • «Variable_name» – это имя переменной URL.

GET vs POST Методы

ПОСЛЕ ПОЛУЧИТЬ
Значения не видны в URL Значения, видимые в URL
Не имеет ограничения длины значений, так как они отправляются через тело HTTPИмеет ограничение по длине значений обычно 255 символов. Это потому, что значения отображаются в URL. Обратите внимание, что верхний предел символов зависит от браузера.
Имеет более низкую производительность по сравнению с методом Php_GET из-за затрат времени на инкапсуляцию значений Php_POST в теле HTTP Имеет высокую производительность по сравнению с методом POST благодаря простому характеру добавления значений в URL.
Поддерживает множество различных типов данных, таких как строковые, числовые, двоичные и т. Д. Поддерживает только строковые типы данных, потому что значения отображаются в URL
Результаты не могут быть отмечены Результаты могут быть отмечены как книги из-за видимости значений в URL

На диаграмме ниже показана разница между get и post

 

 

Обработка данных регистрационной формы

Форма регистрации передает данные себе, как указано в атрибуте действия формы.

 Когда форма отправлена, значения заполняются в суперглобальном массиве $ _POST.

Мы будем использовать функцию isset PHP, чтобы проверить, были ли заполнены значения формы в массиве $ _POST, и обработать данные.

Мы изменим форму регистрации, включив в нее код PHP, который обрабатывает данные. Ниже приведен модифицированный код

<html>
<head>
	<title>Registration Form</title>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
    <?php if (isset($_POST['form_submitted'])): ?> //this code is executed when the form is submitted
        <h3>Thank You <?php echo $_POST['firstname']; ?> </h3>
        <p>You have been registered as
            <?php echo $_POST['firstname'] .
' ' . $_POST['lastname']; ?> </p> <p>Go <a href="/registration_form.php">back</a> to the form</p> <?php else: ?> <h3>Registration Form</h3> <form action="registration_form.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ? > </body> </html>

  ВОТ,

Больше примеров

Простой поисковик

Мы разработаем простую поисковую систему, которая использует метод PHP_GET в качестве типа отправки формы.

Для простоты мы будем использовать оператор PHP If для определения вывода.

Мы будем использовать тот же HTML-код для формы регистрации выше и вносим в нее минимальные изменения.

<html>
<head>
	<title>Simple Search Engine</title>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
    <?php if (isset($_GET['form_submitted'])): ?>
        <h3>Search Results For <?php echo $_GET['search_term']; ?> </h3>
        <?php if ($_GET['search_term'] == "GET"): ?>
            <p>The GET method displays its values in the URL</p>
            <?php else: ?>
            	 <p>Sorry, no matches found for your search term</p>
            <?php endif; ?>
                <p>Go <a href="/search_engine.php">back</a> to the form</p>
                <?php else: ?>
                   <h3>Simple Search Engine - Type in GET </h3>
                   <form action="search_engine.php" method="GET">
                        Search Term:
                        <input type="text" name="search_term">
                        <br>
                            
			<input type="hidden" name="form_submitted" value="1" />
                       <input type="submit" value="Submit">
                       
                  </form>
               <?php endif; ?>
</body>
</html>

Просмотрите вышеуказанную страницу в веб-браузере

Следующая форма будет показана

Введите GET в верхнем регистре и нажмите кнопку отправки.

Будет показано следующее

Диаграмма ниже показывает URL для вышеуказанных результатов

Обратите внимание, что в URL отображаются значения search_term и form_submitted. Попробуйте ввести что-то отличное от GET, затем нажмите кнопку «Отправить» и посмотрите, какие результаты вы получите.

Работа с флажками, переключателями

Если пользователь не выбирает флажок или переключатель, значение не передается, если пользователь выбирает флажок или переключатель, отправляется значение один (1) или значение true.

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

<html>
<head>
	<title>Registration Form</title>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
    <?php if (isset($_POST['form_submitted'])): ?>
        <?php if (!isset($_POST['agree'])): ?>
            <p>You have not accepted our terms of service</p>
            <?php else: ?>
                <h3>Thank You <?php echo $_POST['firstname']; ?></h3>
                <p>You have been registered as
                    <?php echo $_POST['firstname'] .  ' ' . $_POST['lastname']; ?>
                </p>
                <p> Go <a href="/registration_form2.php">back</a> to the form</p>
            <?php endif; ?>
            <?php else: ?>
                        <h3>Registration Form</h3>
                        <form action="registration_form2.php" method="POST">
                            First name:
                            <input type="text" name="firstname">
                            
                            <br> Last name:
                            <input type="text" name="lastname">
                            
                            <br> Agree to Terms of Service:
                            <input type="checkbox" name="agree">
                            <br>
                            <input type="hidden" name="form_submitted" value="1" />
                            <input type="submit" value="Submit">
                        </form>
	<?php endif; ?>
</body>
</html>

Просмотреть вышеуказанную форму в браузере

Введите имя и фамилию

Обратите внимание, что флажок Согласиться с условиями обслуживания не установлен.

Нажмите на кнопку отправить

Вы получите следующие результаты

Нажмите обратно на ссылку формы и затем установите флажок

Нажмите на кнопку отправить

Вы получите следующие результаты

Резюме

  • Формы используются для получения данных от пользователей
  • Формы создаются с использованием тегов HTML
  • Формы могут быть отправлены на сервер для обработки, используя метод POST или GET
  • Значения формы, отправленные с помощью метода POST, инкапсулированы в теле HTTP.
  • Значения форм, отправленные с помощью метода GET, добавляются и отображаются в URL.

 

Обработка форм в PHP, методы GET и POST

Оглавление

Что такое форма

Обработка формы с GET-параметрами

Метод POST

Изменение обработчика формы

Что такое форма

С точки зрения разработчика форма — это набор HTML-элементов, таких как <input>, <select>, <textarea> и пр. , которые заполняются пользователем, отправляются на сервер и обрабатываются с помощью PHP.

Простой пример формы:

<form>
	<input type="text" name="title">
	<textarea name="content"></textarea>
</form>

В этой форме есть 2 поля для заполнения (input и textarea), а также кнопка отправки формы.

Если мы заполним эту форму любыми значениями и нажмём на кнопку, то переместимся на страницу с примерно таким URL: /?title=123&content=456.

Итак, давайте разбираться, что тут вообще происходит.

Разбираемся с обработкой форм в PHP

Обработка формы с GET-параметрами

Формы можно передавать с помощью методов GET и POST. Указывается метод с помощью атрибута method тега form:

<form method="POST">
</form>

Если метод не указан, то по-умолчанию форма отправляется методом GET.

Формы, отправляемые методом GET, передают данные через URL-адрес.

Соответственно GET-параметр — это параметр, передаваемый в URL-адресе. Например, разберём URL /index.php?name=Vasya&price=1000 по частям:

  • /index.php — ссылка на сам скрипт
  • ? — символ, с которого всегда начинается перечисление GET-параметров
  • name=Vasya — это первый GET-параметр с ключом name и значением Vasya
  • & — разделитель между GET-параметрами
  • price=1000 — это второй GET-параметр с ключом price и значением 1000

Ну а раз мы эти параметры передали, значит теперь можем получить их в PHP. Для этого существует суперглобальный массив $_GET.

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

Получить доступ к этим параметрам можно так:
<?php
    echo $_GET['name'] . ' ' . $_GET['price'];

Когда вы отправляете форму, браузер получает ключ и значение каждого элемента (ключ указывается в атрибуте name, значение — то, что ввёл пользователь) и подставляет их в новый URL-адрес, на который затем и переходит.

Поэтому важно указывать атрибут name каждому элементу формы, иначе этот элемент не отправится на сервер.

Итак, создадим простенькую форму и добавим ей PHP-обработчик:

<?php
	if(isset($_GET['form'])) {
		echo $_GET['title'] . ' : ' . $_GET['content'] . '<br>';
	} else {
		echo 'Форма не отправлена';
	}
?>
<form>
	<input type="text" name="title">
	<br><br>
	<textarea name="content"></textarea>
	<br><br>
	<button name="form">Отправить!</button>
</form>

Теперь при отправке заполненной формы PHP выведет на экран то, что мы в эту форму написали.

Метод POST

Когда вы заходите на любой сайт, вы делаете это методом GET. Вернее, ваш браузер сообщает серверу, что заход осуществляется методом GET. Когда вы переходите по страницам сайта — каждая страница запрашивается методом GET.

Однако у этого метода есть недостаток — GET-параметры видны в адресной строке. Это значит, что введённые в форму логин и пароль будут передаваться в URL-адресе, а значит видны в истории браузера, что очень нехорошо.

По этой причине для отправки форм, которые могут содержать конфиденциальную информацию, нужно всегда использовать метод POST. При использовании метода POST данные передаются в теле http-запроса, а не в URL.

Метод GET в формах чаще всего используется для поиска чего-либо (товаров, статей и т.д.).

Некоторые разработчики считают, что данные, передаваемые методом POST, имеют какую-то особую защиту, которая не позволяет злоумышленнику украсть или подменить их.

Это не так. Никакой дополнительной защиты у метода POST нет. Для защиты http-запросов нужно использовать https.

Данные, передаваемые методом POST, лежат в суперглобальном массиве $_POST. Теперь можно переписать нашу форму, чтобы она передавала данные методом POST:

<?php
	if(isset($_POST['form'])) {
		echo $_POST['title'] . ' : ' . $_POST['content'] . '<br>';
	} else {
		echo 'Форма не отправлена';
	}
?>
<form method="post">
	<input type="text" name="title">
	<br><br>
	<textarea name="content"></textarea>
	<br><br>
	<button name="form">Отправить!</button>
</form>

Изменение обработчика формы

Обработчик формы — это URL, на который отправится форма. По-умолчанию форма отправляется на тот же URL-адрес, где она находится.

При желании вы можете отправлять форму не на текущий URL, а на какой-нибудь другой. Для этого достаточно указать путь к скрипту в атрибуте action:

<form action="/some_url.php">
    <input type="submit">
</form>

В примере выше запрос будет отправлен скрипту /some_url.php.

Обработка формы в PHP

Пример создания сайта на Django

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

Чтобы получить Видеокурс,
заполните форму

E-mail:
Имя:

Другие курсы

Как создать профессиональный Интернет-магазин

После семинара:

— Вы будете знать, как создать Интернет-магазин.

— Вы получите бесплатный подарок с подробным описанием каждого шага.

— Вы сможете уже приступить к созданию Интернет-магазина.

Записаться

Другие курсы

Когда, совершив ошибку, не исправил её, это и называется совершить ошибку.

Конфуций

Львиная доля задач в PHP связана с обработкой данных, полученных от пользователя. И в большинстве случаев, эти данные получены из формы, поэтому обработка форм в PHP является важнейшим моментом при создании сайта, о котором я и расскажу в этой статье.

Для начала давайте создадим форму на HTML:

<html>
<head>
  <title>Форма</title>
</head>
<body>
  <form name = 'myform' action = 'req.php' method = 'post'>
    Ваш логин: <input type = 'text' name = 'login' />
    <br />
    Ваш пароль: <input type = 'password' name = 'pass' />
    <br />
    <input type = 'submit' value = 'Войти' />
  </form>
</body>
</html>

Это пример классической формы авторизации пользователя, которую, уверен, многие из Вас многократно заполняли на самых разных сайтах. Давайте теперь обсудим один важный момент: как отправляются данные? Существует два метода (мы с Вами будем только два рассматривать) — это GET и POST. Главное их отличие — это вид отправки: открытый (GET) и закрытый (POST). Самый лучший способ понять, в чём разница — это открыть данный HTML-код в браузере и нажать кнопку «Войти«. Посмотрите на адресную строку, а потом поставьте другой метод, снова пройдите и вновь посмотрите на адресную строку. Отличие будет бросаться в глаза мгновенно.

Соответственно, в PHP существуют два массива: $_GET и $_POST, которые содержат данные, полученные каждым из этих методов. Также есть массив $_REQUEST, который содержит данные $_GET и $_POST одновременно. Я Вам советую использовать метод POST и массив $_POST, хотя, безусловно, зависит от ситуации, но в большинстве случаев делают именно так.

Теперь давайте обработаем данные. Давайте реализуем простой скрипт (в файле «req. php«):

<?php
  $login = $_POST['login'];
  $pass = $_POST['pass'];
  if (($login == "Admin") && ($pass == "AdminPass"))
    echo "Привет, Admin!";
  else echo "Доступ закрыт";
?>

В данном скрипте мы получаем данные, полученные из формы методом POST (из массива $_POST, хотя с таким же успехом могли получить эти данные из $_REQUEST). Дальше проверяем логин и пароль и выводим: «Привет, Admin!» или «Доступ закрыт». Разумеется, чтобы создать систему авторизации пользователей на сайте, необходимо ещё узнать о cookie или о сессиях (в принципе, тоже cookie), но о них мы поговорим несколько позднее, потому что у нас впереди ещё очень много важных тем.

Аналогично, считываются и обрабатываются абсолютно любые данные из форм. То есть всё, что Вам нужно — это знать имя переменной (задаётся в HTML-форме) и дальше использовать массивы $_POST, $_GET и $_REQUEST.

  • Создано 12.11.2010 15:41:16
  • Михаил Русаков

Предыдущая статьяСледующая статья

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:
    <a href=»https://myrusakov. ru» target=»_blank»><img src=»https://myrusakov.ru/images/button.gif» alt=»Как создать свой сайт» /></a>

    Она выглядит вот так:

  2. Текстовая ссылка:
    <a href=»https://myrusakov.ru» target=»_blank»>Как создать свой сайт</a>

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):
    [URL=»https://myrusakov.ru»]Как создать свой сайт[/URL]

Формы в PHP. — it-black.ru

Формы в PHP. — it-black.ru

HTML-формы позволяют передавать введенные пользователем данные на сервер, где их можно дополнительно обработать. Обслуживание форм выполняется в два этапа. Сначала форма должна быть представлена пользователю, который заполнит ее своими данными и затем отправит на сервер.

У каждой формы есть целевая веб-страница, которая должна быть загружена для обработки данных, отправленных пользователем. PHP-код просто проверяет наличие данных в форме, чтобы определить, вызывать ли ему вновь сценарий для создания формы или начать обработку полученных данных. Я расскажу все известные формы применяемые в php для создания сайтов.

Создание формы

Одна страница может содержать несколько форм, поэтому необходимы средства, которые позволяли бы отличить одну форму от другой. Более того, мы должны как-то сообщить форме, куда следует перейти, когда пользователь выполняет действие с формой. Обе задачи решаются заключением форм в следующие теги HTML:


<form action = действие method = "метод" - элементы формы -</form>

В тегах форм указываются два важных элемента: действие и метод. Действие указывает, какой сценарий должен обрабатывать форму, а метод определяет способ передачи данных этому сценарию. Существует два метода:

Метод GET

Этот метод предусматривает передачу параметров с предыдущей страницы на следующую в составе строки запроса, которая представлена в формате универсального идентификатора ресурса URL.

При использовании метода GET для обработки формы к URL, обозначенному с помощью атрибута action формы, после разделителя добавляется в виде вопросительного знака указанное имя (имена) и значение (значения) переменной, после чего вся эта строка передается обрабатывающему веб-серверу.

Метод POST

Предпочтительным методом отправки данных формы является POST. Набор данных формы включается в тело формы при перенаправлении формы к интерпретатору PHP.

Метод POST более безопасен, чем GET. Посетитель может столь же успешно просматривать переменные и данные, отправляемые с помощью метода POST, как и с помощью метода GET.

Единственное различие состоит в том, что в первом случае передаваемые данные не обнаруживаются в адресной строке. Но это не означает, что они скрыты. Данные, отправленные с помощью метода POST, могут просматриваться и модифицироваться пользователем веб-сайта.

Данные передаваемой формы становятся в большей или меньшей степени безопасными, только если запрос защищен с использованием SSL, TLS или какого-то другого способа шифрования. Но к конечному пользователю или посетителю данные все равно поступают в открытом виде, поэтому для него так или иначе остается возможность просматривать и изменять данные.

C помощью протокола SSL осуществляется просто шифрование данных, передаваемых по сети, что не позволяет рассматривать данные в открытом виде на этапе их прохождения от отправителя к получателю.

Флажок (checkbox)

Флажки checkbox предлагают пользователю ряд вариантов, и разрешает выбор нескольких из них. Группа флажков состоит из элементов <input>, имеющих одинаковые атрибуты name и type (checkbox).

Если элемент выбран, то сценарию поступит строка имя=значение, в противном случае в обработчик формы не передаст ничего, т.е. не выбранные флажки вообще никак не проявляют себя в переданном наборе данных.


<input name="Имя переключателя" type="Тип" value="Значение">

Пример:


<input name="mycolor" type="checkbox" value="red" checked> Красный(выбран по умолчанию) 
<input name="mycolor" type="checkbox" value="blue"> Синий 
<input name="mycolor" type="checkbox" value="black"> Черный 
<input name="mycolor" type="checkbox" value="white"> Белый
Переключатель (radio)

Переключатели radio предлагают пользователю ряд вариантов, но разрешает выбрать только один из них. Переключатель (radio) имеет атрибуты name, type и value. Атрибут name задает имя переключателя, type задает тип radio, а атрибут value задает значение.

Если пользователь выберет переключатель, то сценарию будет передана строка имя=значение. При необходимости можно указать параметр checked, который указывает на то, что переключатель будет иметь фокус (т.е. будет отмечен по умолчанию) при загрузке страницы. Переключатели также можно объединять в группы, для этого они должны иметь одно и тоже имя.


<input name="Имя переключателя" type="Тип" value="Значение">

Пример:


 <input name="mycolor" type="radio" value="white"> Белый 
  <input name="mycolor " type="radio" value="green" checked> Зеленый (выбран по умолчанию) 
  <input name="mycolor " type="radio" value="blue"> Синий 
  <input name="mycolor " type="radio" value="red"> Красный 
  <input name="mycolor " type="radio" value="black"> Черный
Текстовое поле (text)

Текстовое поле позволяет пользователям вводить различную информацию. При создании обычного текстового поля размером size и максимальной допустимой длины maxlength символов, атрибут type принимает значение text.

Если указан параметр value, то поле будет содержать отображать value-текст. При создании поля нельзя забывать указывать имя поля, т.к. этот атрибут является обязательным. Пример:


<input type="text" name="txtName" size="10" maxlength="5" value="Текст по умолчанию">
Поле для ввода пароля (password)

Полностью аналогичен текстовому полю, за исключением того что символы, набираемые пользователем, не будут отображаться на экране. Пример:


<input type="password" name="txtName" size="10" maxlength="5">
Многострочное поле ввода текста (textarea)

Многострочное поле ввода текста позволяет отправлять не одну строку, а сразу несколько. По умолчанию тег создает пустое поле шириной в 20 символов и состоящее из двух строк. Многострочное поле ввода текста начинается с парных тегов <textarea></textarea>. Тэг name задает имя многострочного поля.

Также можно указать ширину поля(cols) и число строк(rows). При необходимости можно указать атрибут readonly, который запрещает редактировать, удалять и изменять текст, т.е. текст будет предназначен только для чтения.


<textarea name="Имя поля" cols="Ширина поля " rows="Число строк">Текст</textarea>
Скрытое текстовое поле

Позволяет передавать сценарию какую то служебную информацию, не отображая её на странице. Скрытое поле начинается с тега <input>, атрибуты которого являются name, type и value. Атрибут name задает имя поля, type определяет тип поля, а атрибут value задает значение поля. Пример:


<input name="email" type="hidden" value="[email protected]">
Кнопка отправки формы (submit)

Служит для отправки формы сценарию. При создании кнопки для отправки формы необходимо указать 2 атрибута: type=”submit” и value=”Текст кнопки”. Атрибут name необходим если кнопка не одна, а несколько и все они созданы для разных операций, например кнопки “Сохранить”, “Удалить”, “Редактировать” и т.д. После нажатия на кнопку сценарию передается строка имя=текст кнопки.


<input type="Тип" name="Имя кнопки" value="Текст кнопки">
Кнопка для загрузки файлов (browse)

Кнопка служит для реализации загрузки файлов на сервер. Объект browse начитается с парных тегов <form></form>. Начинающий тэг <form> содержит необходимый атрибут encrypt. Атрибут encrypt принимает значение multipart/form-data, который извещает сервер о том, что вместе с обычной информацией посылается и файл. При создании текстового поля также необходимо указать тип файла – “file”. Пример:


<form enctype="multipart/form-data" action="file.php" method="post"> 
Загрузить: <input name="my_file" type="file"> 
  <input type="submit" value="Отправить"> 
</form>
Рамка (fieldset)

Объект fieldset позволяет нарисовать рамку вокруг объектов. Имеет закрывающий тэг </fieldset>. Заголовок указывается в тэгах <legend></legend>. Основное назначение объекта – задание различных стилей оформления. Пример:


<fieldset> 
<legend>Наш новый урок по языку php.</legend> 
Текст, который будет помещен внутри рамки.
</fieldset>
Обработка формы

Для начала создадим форму на HTML:


<html>
<head>
  <title>Форма</title>
</head>
<body>
  <form name = 'myform' action = 'req.php' method = 'post'>
    Ваш логин: <input type = 'text' name = 'login' />
    <br />
    Ваш пароль: <input type = 'password' name = 'pass' />
    <br />
    <input type = 'submit' value = 'Войти' />
  </form>
</body>
</html>

Это пример классической формы авторизации пользователя. Мы уже рассмотрели два метода это GET и POST. Соответственно, в PHP существуют два массива: $_GET и $_POST, которые содержат данные, полученные каждым из этих методов. Также есть массив $_REQUEST, который содержит данные $_GET и $_POST одновременно. Теперь обработаем данные. Реализуем простой скрипт (в файле “req.php”):


<?php
  $login = $_POST['login'];
  $pass = $_POST['pass'];
  if (($login == "Admin") && ($pass == "AdminPass"))
    echo "Привет, Admin!";
  else echo "Доступ закрыт";
?>

В данном скрипте мы получаем данные, полученные из формы методом POST (из массива $_POST). Дальше проверяем логин и пароль и выводим: “Привет, Admin!” или “Доступ закрыт”. Аналогично, считываются и обрабатываются абсолютно любые данные из форм. Нужно только знать имя переменной и дальше использовать массивы $_POST, $_GET и $_REQUEST.