
Лабораторная работа № 7
Знакомство с Web-сервером и обработкой данных с помощью PHP-программ
Цель работы: познакомиться с настройками Web-сервера, с простейшими инструкциями языка PHP, использованием переменных, методами пересылки данных между клиентом и сервером, научиться использовать PHP-скрипты в HTML-документах.
Задание
1.Настроить Web-сервер для работы с PHP-программами.
При проведении лабораторных работ будем использовать локальный Web-сервер, настроенный на работу с каталогом /var/www. Для запуска PHP-скриптов файлы, содержащие HTML-документы и PHP-скрипты, должны быть помещены в этот каталог.
2. Создать HTML-документ prim1.html, содержащий произвольный текст, и поместить его в public_html. Запустить браузер и в строке адреса указать адрес: http://dctisrv/<login>/prim1, например, http://dctisrv/sp23n20/prim1. В браузере должен отобразиться текст HTML-документа prim1.html.
3. Создать в public_html файл info.php следующего содержания:
<?php
?>
ивызвать его в строке адреса браузера: http://dctisrv/info.php
4.Познакомиться с информацией о Web-сервере, появившейся на экране. Определить операционную систему, установленную на сервере, название и версию Web-сервера, версию PHP, IP-адреса сервера, удаленного компьютера, адрес каталога для хранения документов.
5.Создать файл prim2.php, выполняющий сложение двух числовых переменных. Исходные данные для вычисления передать как параметры при вызове php-файла:
http://dctisrv/prim2.php?var1=10&var2=4
6.Создать файл prim3.php, отображающий в окне браузера параметры Web-сервера.
Варианты задания:
1. IP-адрес удаленного компьютера, метод пересылки данных;
2. Программное обеспечение сервера, протокол передачи данных; 3. Каталог для хранения документов на сервере, IP-адрес сервера; 4. Почтовый адрес администратора сети, имя хост-компьютера.
7. Создать Web-страницу с формой HTML, которая содержит поля ввода и кнопку подтверждения. При нажатии кнопки подтверждения форма отсылает данные на сервер для обработки. Обработку данных выполняет php-сценарий. Вариант задания на обработку следует получить у преподавателя. Результат выводится на отдельной странице
вместе с исходными данными. Варианты задания:
1. Фамилия, экзаменационные оценки по трем предметам – вычислить средний балл и назначить на стипендию.
2. Фамилия, зарплата за три месяца – вычислить общую зарплату и определить наибольшую месячную зарплату.
3. Фамилия, зарплата для двух сотрудиков – вычислить общую зарплату и величину начислений на зарплату 26,2 %.
4. Фамилия, имя, рост, вес – вычислить коэффициент стройности по формле Рост- 100-Вес, в зависимости от вычисленного значения вывести рекомендации: сесть на диету, и дальше так держать, побольше есть пирожных.
8. Создать Web-страницу с формой HTML, содержащей поле ввода и кнопку подтверждения. В поле ввода вводится строка, состоящая из нескольких слов. Сценарий
php обрабатывает строку в соответствии с заданием. Варианты задания:
1. Вычислить количество слов в строке.
2. Вычислить количество чисел в строке.
3. Удалить второе слово из строки.
4. Удалить последнее слово из строки.
1
Методические указания
1. Пример простейшей php-программы (команда echo выводит текст на экран):
<?php
echo "This is a PHP script!"; ?>
2. Комментарии в php-программе:
// Это однострочный комментарий /* Это многострочный
комментарий, */
3. Встраивание html-кода в php-программу:
<?php
echo ”<html><head>”;
echo ”<title>Пример</title>”; echo ”</head><body>”;
echo ”This is a PHP script!”; echo ”</body></html>”; ?>
4. Встраивание php-скрипта в html-документ:
<html> <head><title>Пример</title></head> <body>
<?php
echo "This is a PHP script!";
?>
</body>
</html>
5. Типы данных: |
логический |
boolean |
|
integer |
целый |
float |
вещественный |
string |
строка |
array |
массив |
object |
объект |
PHP не требует (и не поддерживает) явного определения типа при объявлении переменной; тип переменной определяется по контексту, в котором она используется.
6.Переменные
Переменные обозначаются с помощью знака $:
$sum=5; //Целая переменная – присваивается значение 5 $a=$b+6.8; //Вещественная переменная
$stroka=”0”; //Строка
Проверить тип переменной можно с помощью функции gettype:
2
gettype($a)
Если надо изменить тип переменной, используется функция settype: settype($a,$type);
где $type – строковая переменная, хранящая одно из значений, возвращаемых функцией gettype: “integer”, “float” и т.д.
Для проверки существования переменной применяется логическая функция isset(имя_переменной). Следующий пример проверяет, была ли нажата кнопка формы submit:
if (isset($submit))
{
}
...
7.Внешние переменные
Когда данные html-формы отсылаются на сервер, их значения помещаются в
ассоциативные массивы $_POST или $_GET в соответствии с методом отправки данных (GET или POST), используемом в форме, и в глобальный массив $_REQUEST. Если включена
директива register_globals в файле php.ini, любые переменные этой формы автоматически
делаются доступными скрипту PHP.
<form action="foo.php" method="POST">
Name: <input type="text" name="username"><br> <input type="submit">
</form>
Здесь мы использовали метод передачи “POST”, но мы также можем использовать метод
“GET”, при котором передаваемые данные будут видны в строке адреса в формате:
[имя файла]?[имя1]=[значение]&[имя2]=[значение] и т.д.
Когда вышеприведенная форма отправляется на сервер, значение из поля ввода text
будет доступно в $_POST["username"] и в $_REQUEST[“username”]. Если директива
конфигурации register_globals включена, то эта переменная будет также доступна как $username в глобальной области видимости, т.е. у PHP уже созданы переменные с именами,
идентичными именам полей формы. Это очень удобно, но из соображений безопасности директиву register_globals рекомендуется отключать. Тогда передать значение внешней
переменной в php-программу можно следующим образом:
$a = $_POST[“username”]; или $a = $_REQUEST[“username”];
в результате значение, передаваемое формой, будет получено локальной переменной a phpпрограммой.
Переменные окружения Переменные окружения представляют собой именованные значения параметров, передаваемых
php-сценарию от родительского процесса (операционной системы), они доступны с помощью
массива $_SERVER:
<?php
echo ‘Адрес удаленного компьютера: $_SERVER[“REMOTE_ADDR”]’;
?> |
|
|
|
Переменная окружения |
Значение |
|
|
DOCUMENT_ROOT |
Каталог, предназначенный для хранения документов |
|
|
REMOTE_ADDR |
IP-адрес удаленного компьютера |
|
|
SERVER_SOFTWARE |
Программное обеспечение, установленное на сервере |
|
|
REQUEST_METHOD |
Метод пересылки данных (GET или POST) |
|
|
3

SERVER_PROTOCOL |
Протокол, используемый для доставки данных |
HTTP_HOST |
Имя хост-компьютера |
SERVER_ADMIN |
Почтовый адрес сетевого администратора |
SERVER_ADDR |
IP-адрес сервера |
Операторы в РНР: Арифметические операторы
Оператор Операция
+Сложение
-Вычитание
*Умножение
/Деление
% Деление по модулю (вычисляет остаток от деления), например 8 % 5 равно 3
Операторы отношения
Оператор |
Значение |
Пример |
Имеет значение true, если |
== |
Равно |
$h == $i |
$h и $i равны |
< |
Меньше |
$h < $i |
$h меньше $i |
> |
Больше |
$h > $i |
$h больше $i |
<= |
Меньше или равно |
$h <= $i |
$h меньше или равно $i |
>= |
Больше или равно |
$h >= $i |
$h больше или равно $i |
!= |
Не равно |
$h != $i |
$h не равно $i |
<> |
Не равно |
$h <> $i |
$h не равно $i |
Логические операторы |
|
|
|
Пример |
Название |
Имеет значение true, если |
|
$h && $i |
И |
Каждое из $h и $i имеет значение true |
|
$h || $i |
ИЛИ |
Одно или оба из $h и $i истинны |
|
$h and $i |
И |
Оба $h и $i имеет значение true |
|
$h or $i |
ИЛИ |
Истинно либо $h, либо $i, либо оба |
|
$h xor $i |
Исключающее ИЛИ |
Одно из $h и $i имеет значение true |
|
! $h |
Отрицание |
Значение $h не true |
|
8.Условные операторы
Оператор if .. else $i = 1;
if ($i == 0)
{
echo (“Эта строка не будет выведена”); echo (“\n”);
}
elseif ($i == 1)
{
echo (“Эта строка будет выведена”); echo (“\n”);
}
else (“Эта строка не будет выведена”);
9.Оператор switch
4