С помощью форм удобно получать и обрабатывать данные пользователей



Форма создается с помощью конструкции вида:

 




<pre><form name="namevalue" method="methodvalue" action="actionvalue">
</form>






Здесь атрибут name содержит имя формы, атрибут method может принимать два

значения: get или post, атрибут action содержит url, на который будут передаваться данные.



Значения get и post определяют способ передачи имен переменных и их значений.

При использовании get передача данных происходит в открытом виде (в ссылке), а при использовании post данные скрыты. На практике чаще всего используют post.



Процесс отправки данных формы происходит при нажатии на специальный элемент submit. Разместить этот элемент на форме можно следующим образом:

 




<input name="namevalue" type="submit" value="label">




где атрибут name содержит имя кнопки, атрибут value содержит текст, который будет отображаться на кнопке



В качестве примера, создадим приложение, которое позволяет вводить имя пользователя и отображать его на html странице.



Создадим два файла: form.php и formaction.php. Файл form.php будет содержать форму, а файл formaction — выполнять обработку данных.



Файл form.php содержит описание формы

 




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Form example 1</title>
</head>
<body>

<form name="form1" method="post" action="formaction.php">
<p><input type="text" name="login" value="Имя пользователя"></p>
<p><input type="submit" name="Submit" value="Вход"></p>
</form>

</body>
</html>




Файл formaction.php содержит




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\
<title>Form example 1</title>
</head>
<body>

<?php
echo "Добро пожаловать!";
?>

</body>
</html>




В результате выполнения файла form.php, получим





При нажатии на кнопку с надписью Вход получим





В данном примере не осуществляется обработка переданных данных.

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



В php есть встроенные ассоциативные массивы $_GET, $_POST, $_REQUEST, в которых хранятся переданные данные.

В массиве $_GET хранятся данные, переданные с помощью метода get, массиве $_POST — данные, переданные с помощью метода post, массиве $REQUSET — данные, переданные методами get и post.



Изменим файл formaction.php




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\
<title>Form example 1</title>
</head>
<body>

<?php
$username = $_POST['login'];
echo "Добро пожаловать, ".$username."!";
?>

</body>
</html>




Здесь в переменную username записываются данные, переданные из элемента формы с именем login, и затем значение этой переменной добавляется после слов «Добро пожаловать». Например, введя в форме имя пользователя User, получим «Добро пожаловать, User».