Лабораторная работа №4
Модификация персонального сайта студента с использованием PHP
Программное обеспечение
Для выполнения лабораторной работы необходимо следующее ПО:
Редактор HTMLдокументов (желательноHomeSite4.5 и выше)
Файловый менеджер (желательно WindowsCommander4.0 и выше)
Браузер (желательно InternetExplorer5.0 и выше)
Веб сервер Apache1.3.27 и выше
Интерпретатор языка PHP 4.2.3 и выше
Задание
Разработать шаблон страницы
Шаблон представляет собой документ, в котором присутствуют все элементы оформления и навигации, но при этом отсутствует содержательная часть (наполнение). Такой подход позволяет отделить структуру документа от его наполнения, что позволяет существенно сократить дисковое пространство, занимаемое сайтом и осуществлять более гибкое управление информационным наполнением.
Поместить данные во внешний файл
Информация, содержащаяся в документах, должна быть представлена во внешнем файле. По усмотрению разработчика допускается любой способ организации данных, как с точки зрения количества внешних файлов, так и с точки внутренней структуры файла(ов).
Разработать процедуру формирования документа
Формирование документа осуществляется путем подстановки в шаблон соответствующей информации из внешнего файла. В шаблоне должна быть обеспечена процедура извлечения информации из внешнего файла в соответствии с номером запрашиваемого документа. Номер запрашиваемого документа передается в строке запроса при нажатии на соответствующий пункт меню.
Разработать счетчик загрузки для каждой страницы сайта.
Внизу каждой страницы должен располагаться счетчик, отображающий в текстовом виде количество загрузок страницы. Для каждой страницы должен вестись отдельный учет количества загрузок. Счетчик реализуется в виде скрипта на языке PHPи хранит данные о количестве загрузок страниц во внешнем файле.
Вызов скрипта со счетчиком помещается в шаблон страницы. Номер загружаемой страницы (документа) определяется в соответствии с параметром, получаемым из строки запроса.
Отчет
Отчет о выполнении лабораторной работы должен содержать следующие разделы:
Титульный лист
Шаблон документа
Текст файла(ов), содержащего информационное наполнение страниц сайта
Скрипт, осуществляющий работу счетчика
Описание структуры файла, содержащего данные счетчика
Защита
Защита лабораторной работы осуществляется в специально отведенное время в дисплейном классе института. Для защиты необходимо предоставить отчет о выполнении лабораторной работы и продемонстрировать версию сайта с элементами PHP.
Перед демонстрацией сайт должен быть помещен на выделенный сервер при помощи FTPклиента. Логин и пароль для доступа к персональному каталогу учащегося на сервере должен быть получен у преподавателя. Демонстрация работоспособности сайта осуществляется на рабочей станции дисплейного класса путем загрузки страниц сайта с сервера программой просмотра страниц (браузером).
Учащийся допускается к защите ТОЛЬКО ПРИ НАЛИЧИИ отчета и демонстрационной версии сайта.
Пример
Шаблон документа (файл document.php)
<?
// Файл содержит шаблон страницы
require ("data.inc.php"); // включение в программу внешнего файла data.inc.php
if (!isset($page)) $page=0;
?>
<html>
<head>
<title>Персональный сайт Иванова И.И. Резюме</title>
<link href="img/styles.css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta name="keywords" content="Иванов, персональный сайт, резюме">
</head>
<body bgcolor="#CCCCCC">
<script language="Javascript">
<!--
// инициализация массивов, содержащих имена файлов
var PassivePictures=new Array(1);
var ActivePictures=new Array(1);
// заполнение массивов
ActivePictures[0]="img/res2.gif";
PassivePictures[0]="img/res.gif";
// функция замены изображений
function Change(button,param,type) {
if (type=="act") button.src=ActivePictures[param];
else button.src=PassivePictures[param];
}
-->
</script>
<center><span class="title"><? echo $title[$page]; ?></span></center>
<hr size="1" width="100%">
<table width="100%" cellspacing="10" cellpadding="0" border="0">
<tr>
<td width="200" valign="top">
<a href="document.php?page=0"><img src="img/res.gif" width="157" height="47" alt="Резюме" border="0" onmouseover="Change(this,0,'act')" onmouseout="Change(this,0,'pas')"></a><br><br>
<a href="#"><img src="img/bio.gif" width="157" height="47" alt="Биография" border="0"></a><br><br>
<a href="#"><img src="img/proj.gif" width="157" height="47" alt="Проекты" border="0"></a>
</td>
<td>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td class="normal">
<? echo $content[$page]; ?>
</td>
</tr>
</table>
</td>
</tr>
</table>
<hr size="1" width="100%">
<? require ("counter.inc.php"); ?>
</body>
</html>
Файл, содержащий информационное наполнение страниц (файл data.inc.phpсодержит информацию только для одного раздела сайта)
<?
// Файл содержит описание массивов, содержащих названия страниц и их текст
$title[0]='Резюме';
$content[0]='
<span class="bold">Ф.И.О:</span> Иванов Иван Иванович<br>
<span class="bold">Дата рождения:</span> 1 января 1970г.<br>
<span class="bold">Семейное положение:</span> холост<br>
<span class="bold">Домашний телефон:</span> 111-11-11<br>
<span class="bold">E-mail:</span> ivanov@mail.ru<br><br>
<span class="subtitle">Образование</span><br>
Московский государственный институт Электроники и Математики (МГИЭМ).<br>
<span class="bold">Специальность:</span> вычислительные машины, комплексы, системы и сети.<br><br>
<span class="subtitle">Опыт работы<</span><br>
1995-2004 ООО "СуперСофт"<br>
<span class="bold">Должность:</span> системный администратор<br><br>
<span class="subtitle">Профессиональные навыки</span><br>
<span class="bold">ОС:</span> MS Windows 9x/2000/XP, UNIX<br>
<span class="bold">Языки программирования:</span> C/С++, Visual Basic<br>
<span class="bold">Программные продукты:</span> MS Office, MS Visio<br><br>
<span class="subtitle">Дополнительные сведения</span><br>
<span class="bold">Личные качества:</span> аккуратность, педантичность, обучаемость<br>
<span class="bold">Увлечения:</span> музыка, литература, спорт, компьютерные игры<br>
<span class="bold">Прочее:</span> Английский язык (технический)
';
?>
Текст файла, содержащего скрипт счетчика (файл counter.inc.php)
<?
// обработка данных счетчика и вывод сообщения о количестве загрузок
if (!file_exists("counter.dat"))
$number=1;
else {
$fp=fopen("counter.dat","r");
$number=fgets($fp);
$number++;
fclose($fp);
}
echo '<span class="normal">Количество загрузок страницы: </span><span class="bold">'.$number.'</span>';
$fp=fopen("counter.dat","w");
fputs($fp,$number);
fclose($fp);
?>