- •Введение в php, основы синтаксиса, типы данных, операторы, управляющие конструкции
- •1. Постановка задачи
- •2. Порядок выполнения работы
- •3. Содержание отчета
- •4. Теоретические сведения
- •4.2. Возможности php
- •Константы
- •Операторы
- •4.3. Основы синтаксиса
- •Комментарии
- •Переменные
- •Типы данных
- •Integer (целый);
- •Тип boolean (булев или логический тип)
- •Тип integer (целые)
- •Тип float (числа с плавающей точкой)
- •Тип string (строки)
- •Одинарные кавычки
- •Двойные кавычки
- •Тип array (массив)
- •Тип object (объекты)
- •Тип resource (ресурсы)
- •4.4. Управляющие конструкции Условные операторы Оператор if .. Else
- •Оператор elseif
- •Альтернативный синтаксис
- •Оператор switch
- •Операторы передачи управления
- •Операторы включения
- •4.5. Обработка запросов с помощью php Форма запроса клиента
- •Использование html-форм для передачи данных на сервер
- •Для метода get
- •Для метода post
- •Обработка запросов с помощью php
- •Пример обработки запроса с помощью php
- •5. Контрольные вопросы
- •Варианты заданий
- •6. Список рекомендуемой литературы
Пример обработки запроса с помощью php
Предположим, нужно написать форму для регистрации участников школы программирования и после регистрации отправить участнику сообщение. Мы не будем отправлять что-либо по электронной почте, а просто сгенерируем это сообщение и выведем его на экран браузера. Начальный вариант формы регистрации мы уже приводили выше. Изменим его таким образом, чтобы каждый регистрирующийся мог выбрать сколько угодно курсов для посещения, и не будем подтверждать получение регистрационной формы.
<h2>Форма для регистрации студентов</h2>
<form action="1.php" method=POST>
Имя <br><input type=text name="first_name"
value="Введите Ваше имя"><br>
Фамилия <br><input type=text name="last_name"><br>
E-mail <br><input type=text name="email"><br>
<p> Выберите курс, который вы бы хотели посещать:<br>
<input type=checkbox name='kurs[]' value='PHP'>PHP<br>
<input type=checkbox name='kurs[]' value='Lisp'>Lisp<br>
<input type=checkbox name='kurs[]' value='Perl'>Perl<br>
<input type=checkbox name='kurs[]' value='Unix'>Unix<br>
<P>Что вы хотите, чтобы мы знали о вас? <BR>
<textarea name="comment" cols=32 rows=5></textarea>
<input type=submit value="Отправить">
<input type=reset value="Отменить">
</form>
Листинг form_final.html
Здесь все достаточно просто и понятно. Единственное, что можно отметить, – это способ передачи значений элемента checkbox. Когда мы пишем в имени элемента kurs[], это значит, что первый отмеченный элемент checkbox будет записан в первый элемент массива kurs, второй отмеченный checkbox – во второй элемент массива и т.д. Можно, конечно, просто дать разные имена элементам checkbox, но это усложнит обработку данных, если курсов будет много.
Скрипт, который все это будет разбирать и обрабатывать, называется 1.php (форма ссылается именно на этот файл, что записано в ее атрибуте action). По умолчанию используется для передачи метод GET, но мы указали POST. По полученным сведениям от зарегистрировавшегося человека, скрипт генерирует соответствующее сообщение. Если человек выбрал какие-то курсы, то ему выводится сообщение о времени их проведения и о лекторах, которые их читают. Если человек ничего не выбрал, то выводится сообщение о следующем собрании заочной школы программистов (ЗШП).
<?
// создадим массивы соответствий курс-время его
// проведения и курс-его лектор
$times = array("PHP"=>"14.30","Lisp"=>"12.00",
"Perl"=>"15.00","Unix"=>"14.00");
$lectors = array("PHP"=>"Василий Васильевич",
"Lisp"=>"Иван Иванович", "Perl"=>"Петр Петрович", "Unix"=>"Семен Семенович");
define("SIGN","С уважением, администрация");
// определяем подпись письма как константу
define("MEETING_TIME","18.00");
// задаем время собрания студентов
$date = "12 мая"; // задаем дату проведения лекций
//начинаем составлять текст сообщения
$str = "Здравствуйте, уважаемый " . $_POST["first_name"]
. " " . $_POST["last_name"]."!<br>";
$str .= "<br>Сообщаем Вам, что ";
$kurses = $_POST["kurs"]; // сохраним в этой переменной
// список выбранных курсов
if (!isset($kurses)) { // если не выбран ни один курс
$event = "следующее собрание студентов";
$str .= "$event состоится $date ". MEETING_TIME . "<br>";
} else { // если хотя бы один курс выбран
$event = "выбранные Вами лекции состоятся $date <ul>";
//функция count вычисляет число элементов в массиве
for ($i=0;$i<count($kurses);$i++){
// для каждого выбранного курса
$k = $kurses[$i]; // запоминаем название курса
$lect = $lect . "<li>лекция по $k в $times[$k]";
// составляем сообщение
$lect .= " (Ваш лектор, $lectors[$k])";
}
$event = $event . $lect . "</ul>";
$str .= "$event";
}
$str .= "<br>". SIGN; // добавляем подпись
echo $str; // выводим сообщение на экран
?>
Скрипт 1.php, обрабатывающий форму form_final.html
Таким образом мы познакомились с принципами обработки пользовательских запросов в PHP.
