Учебное пособие: Этапы создания веб-приложения. Основы РНР и MySQL
<head>
<title>Вас приветствует PHP</title>
</head>
<body>
<?
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
echo '< h 1>Привет, < 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>