Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Отчеты / Web. Лабораторная работа 7

.pdf
Скачиваний:
123
Добавлен:
29.01.2021
Размер:
341.46 Кб
Скачать

Федеральное агентство связи ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М. А. БОНЧ-БРУЕВИЧА» (СПбГУТ)

Факультет инфокоммуникационных сетей и систем Кафедра программной инженерии и вычислительной техники

ЛАБОРАТОРНАЯ РАБОТА №7 по дисциплине «Web-технологии»

на тему «Знакомство с Web-сервером и обработкой данных с помощью PHPпрограмм»

Выполнил: студент 3-го курса дневного отделения группы ИКПИ-85

Коваленко Леонид Александрович Преподаватель:

профессор, к. т. н. Бузюков Лев Борисович

Санкт-Петербург

2020

Задание №1 Создадим на сервере файл info.php (табл. 1).

Таблица 1 — Файл «info.php»

<?php phpinfo();

?>

Результат выполнения задания №1 представлен на рис. 1.

Рисунок 1 — Отображение «info.php» ОС на сервере: Linux x86_64. Веб-сервер: Apache. Название сервера: ikpi85.rf.gd. Версия PHP: 7.4.8.

Задание №2

Создадим файл sum.php (табл. 2), выполняющий сложение двух числовых переменных. Исходные данные для вычисления передадим как параметры при вызове PHP-файла: http://ikpi85.rf.gd/sum.php?var1=3&var2=5 Таблица 2 — Файл «sum.php»

<?php

$x = $_GET['var1']; $y = $_GET['var2'];

if (!empty($x) && !empty($y))

echo "<p>$x + $y = " . ((string) ((int) $x + (int) $y)) . "</p>"; else {

$str = $_SERVER['HTTP_X_FORWARDED_PROTO'] . '://' . $_SERVER['HTTP_HOST']

. $_SERVER['PHP_SELF'] . '?var1=3&var2=5';

echo "See <a href='$str' style='color:blue'>$str</a>";

}

?>

Результат выполнения задания №2 представлен на рис. 2, 3.

2

Рисунок 2 — Отображение «sum.php» (без параметров)

Рисунок 3 — Отображение «sum.php» (с параметрами) Задание №3

Создадим файл params.php (табл. 3), отображающий в окне браузера параметры Web-сервера:

1.IP-адрес удаленного компьютера, метод пересылки данных;

2.Программное обеспечение сервера, протокол передачи данных;

3.Каталог для хранения документов на сервере, IP-адрес сервера;

4.Почтовый адрес администратора сети, имя хост-компьютера. Таблица 3 — Файл «params.php»

<?php

echo "<p>1. IP-адрес удаленного компьютера, метод пересылки данных: "; echo $_SERVER['REMOTE_ADDR'] . ", " . $_SERVER['REQUEST_METHOD'] .

"</p>";

echo "<p>2. Программное обеспечение сервера, протокол передачи данных: "; echo $_SERVER['SERVER_SOFTWARE'] . ", " . $_SERVER['SERVER_PROTOCOL'] .

"</p>";

echo "<p>3. Каталог для хранения документов на сервере, IP-адрес сервера:

";

echo $_SERVER['DOCUMENT_ROOT'] . ", " . $_SERVER['SERVER_ADDR'] . "</p>"; echo "<p>4. Почтовый адрес администратора сети, имя хост-компьютера: "; echo $_SERVER['SERVER_ADMIN'] . ", " . $_SERVER['HTTP_HOST'] . "</p>";

?>

Результат выполнения задания №3 представлен на рис. 4.

Рисунок 4 — Отображение «params.php» Задание №4

Создадим Web-страницу с формой HTML (табл. 4), которая содержит поля ввода и кнопку подтверждения. При нажатии кнопки подтверждения форма отсылает данные на сервер для обработки. Результат выводится вместе с исходными данными.

3

Задание: фамилия, экзаменационные оценки по трем предметам — вычислить средний балл и выбрать стипендию (повышенную или обычную). Таблица 4 — Файл «form_send.php»

<?php

$error = null;

if ($_SERVER['REQUEST_METHOD'] == 'POST') { $family = $_POST['family'];

$markProg = $_POST['markProg']; $markMath = $_POST['markMath']; $markWeb = $_POST['markWeb'];

$error = empty($family) || empty($markProg) || empty($markMath) || empty($markWeb);

}

?>

<!DOCTYPE html>

<html>

<head>

<title>Отправка данных</title>

</head>

<body>

<?php

if ($error == true || is_null($error)) { ?>

<form action="<?=$_SERVER['PHP_SELF']?>" method="post"> <input type="text" name="family" value="<?=$family?>"

placeholder="Фамилия" required="required" /><br>

<label>Оценка по дисциплине «Программирование»</label><input type="number" value="<?=$markProg?>" name="markProg" min="2" max="5" required="required" /><br>

<label>Оценка по дисциплине «Математика»</label><input type="number" value="<?=$markMath?>" name="markMath" min="2" max="5" required="required"

/><br>

<label>Оценка по дисциплине «Web-технологии»</label><input type="number" value="<?=$markWeb?>" name="markWeb" min="2" max="5" required="required" /><br>

<?php

if ($error == true)

echo "<label>Ошибка отправки! Некоторые данные не были введены! Попробуйте снова!</label><br>";

?>

<input type="submit" value="Отправить" />

</form>

<?php

}

else { ?>

<h3>Фамилия: <?=$family?></h3>

<p>Оценка по дисциплине «Программирование»: <?=$markProg?></p> <p>Оценка по дисциплине «Математика»: <?=$markMath?></p> <p>Оценка по дисциплине «Web-технологии»: <?=$markWeb?></p> <p>Средний балл: <?=($markProg + $markMath + $markWeb) / 3?></p>

<p>Тип стипендии: <?=($markProg == 5 && $markMath == 5 && $markWeb == 5 ? 'Повышенная' : 'Обычная')?></p>

<?php

}

?>

</body>

</html>

Результат выполнения задания №4 представлен на рис. 5, 6, 7, 8.

4

Рисунок 5 — Отображение «form_send.php» (изначальный вид)

Рисунок 6 — Отображение «form_send.php» (при отправки пустых данных сообщение об ошибке)

Рисунок 7 — Отображение «form_send.php» (результат отправки корректных данных, обычная стипендия)

Рисунок 8 — Отображение «form_send.php» (результат отправки корректных данных, повышенная стипендия)

Задание №5

Создадим Web-страницу с формой HTML (табл. 5), содержащей поле ввода и кнопку подтверждения. В поле ввода вводится строка, состоящая из нескольких слов. Сценарий PHP обрабатывает строку в соответствии с заданием.

Задание: вычислить количество слов в строке. Таблица 5 — Файл «str_count.php»

<?php

$str = $_POST['string']; $count = null;

5

if ($_SERVER['REQUEST_METHOD'] == 'POST' && !is_null($str)) $count = count(preg_split('/\s+/', $str));

//| Регулярное выражение как последовательность пробельных символов.

//| preg_split($pattern, $str) формирует массив вхождений

//| регулярного выражения $pattern в строке $str, а count($array)

//|__возвращает размер массива $array

?>

<!DOCTYPE html>

<html>

<head>

<title>Число слов в строке</title>

</head>

<body>

<p>Посчитать число слов в строке:</p>

<form action="<?=$_SERVER['PHP_SELF']?>" method='post'> <input type="text" name="string" /><br>

<input type="submit" value="Отправить" />

</form>

<?php

if (!is_null($count)) { ?>

<p>Текст: <?=$str?></p> <p>Слов: <?=$count?></p> <?php

}

?>

</body>

</html>

Результат выполнения задания №5 представлен на рис. 9, 10, 11.

Рисунок 9 — Отображение «form_send.php» (изначальный вид)

Рисунок 10 — Отображение «form_send.php» (после ввода текста «Привет, мир!»)

Рисунок 11 — Отображение «form_send.php» (после ввода текста «Два слова Two words 5»)

6