logo
Этапы создания веб-приложения. Основы РНР и MySQL

</head>

<body>

<?

if ($_SERVER[REQUEST_METHOD] == POST) {

echo <h1>Привет, <b> . $_POST[name] . </b>!</h1>;

}

?>

<form method="POST" action="<?=$_SERVER[PHP_SELF]?>">

Введите Ваше имя: <input type="text" name="name">

<br>

<input type="submit" name="okbutton" value="OK">

</form>

</body>

</html>

Форма, приведенная в строках 8-12 (выделено цветом), содержит два атрибута: name и okbutton:

1. атрибут method указывает метод отправки формы POST;

2. атрибут action, указывающий URL, на который отправляется форма, заполняется значением серверной переменной PHP_SELF - адресом выполняемого в данный момент скрипта.

<?=$_SERVER[PHP_SELF]?> - сокращенная форма записи для echo: <? echo $_SERVER[PHP_SELF]; ?>.

Если в поле форма name ввести, например, значение Вася, и нажать кнопку OK, то Браузер отправит после этого на сервер POST-запрос. Тело запроса имеет вид: name=Вася&okbutton=OK. PHP при этом автоматически заполнит массив $_POST:

$_POST[name] = Вася

$_POST[okbutton] = OK

В действительности, значение "Вася" отправляется браузером в urlencode-виде; для кодировки windows-1251 это значение выглядит как %C2%E0%F1%FF. Но, поскольку PHP автоматически осуществляет необходимое декодирование, мы можем "забыть" об этой особенности - пока не придется работать с HTTP-запросами вручную.

Так как в теле запроса указываются только имена и значения, но не типы элементов форм, PHP понятия не имеет, соответствует $_POST[name] строке ввода, кнопке, или списку. Но эта информация нам, в общем-то, совершенно не нужна.

Поскольку знать, что написано на кнопке submit, нам необязательно, в строке можно удалить атрибут name, сократив описание кнопки до <input type="submit" value="OK"> (листинг form_4.php). В этом случае, браузер отправит POST-запрос name=Вася.

Листинг form_4.php

<html>