Для передачи данных от пользователя Web-страницы на сервер используются HTML-формы. Для работы с формами в PHP предусмотрен ряд специальных средств.
Обработка ввода пользователя
PHP-программу обработки ввода можно отделить от HTML-текста, содержащего формы ввода, а можно расположить на одной странице.
Пример 2
<?phpif ( ! isset( $cardnumber ) ) $m = "Введите номер карточки";elseif ( $cardnumber == "" ) $m = "Ваш номер пуст!";else $m = "Ваш номер: $cardnumber";?><html><head><title>Пример обработки ввода</title></head><body><h1><?php echo $m?></h1><form name="form1" action="<?php echo $PHP_SELF?>" method="post"> <p>Номер карточки: <input name="cardnumber" type="text" size="20"></form></body></html> Здесь отсутствует кнопка передачи данных, т.к. форма, состоящая из одного поля, передается автоматически при нажатии клавиши <Enter>.
При обработке элемента с многозначным выбором для доступа ко всем выбранным значениям нужно к имени элемента добавить пару квадратных скобок.
Пример 3.1
ex.htm
<html><head><title>Список</title></head><body><form name="form1" action="ex1.php" method="post"><select name="Item[]" size=5 multiple><option>Чай<option>Кофе<option>Молоко<option>Ветчина<option>Сыр</select><input type="submit" value="ВВОД"></form></body></html>
Пример 3.2
ex1.php
<html><head><title>Обработка списка (файл ex1.php)</title></head><body><?phpecho "Ваш заказ: <p><ul>";foreach ( $Item as $value ) echo "<li>$value";echo "</ul>";?></body></html>
Пример 4. Прием значений от checkbox-флажков.
< ?if (@$_REQUEST['doGo']) { foreach (@$_REQUEST['known'] as $k=>$v) { if($v) echo "Вы знаете язык программирования $k!<br>"; else echo "Вы не знаете языка программирования $k. <br>"; }}?><form action="< ?=$_SERVER['SCRIPT_NAME']?>" method=post>Какие языки программирования вы знаете?<br><input type=hidden name="known[PHP]" value="0"> <input type=checkbox name="known[PHP]" value="1">PHP<br><input type=hidden name="known[Perl]" value="0"> <input type=checkbox name="known[Perl]" value="1">Perl<br><input type=submit name="doGo" value="Go!"></form>
Пример 5
< ?php ## Модель скрипта, принимающего текст от пользователя.if (@$_REQUEST['text']) echo htmlspecialchars($_REQUEST['text'])."<hr>";?><form action="< ?=$_SERVER['SCRIPT_NAME']?>" method="post"><textarea name="text" cols="60" rows="10">< ?=@htmlspecialchars($_REQUEST['text'])?></textarea><br><input type="submit"></form>