
Лабораторная работа №5
Модификация персонального сайта студента с использованием PHPиMySQL
Программное обеспечение
Для выполнения лабораторной работы необходимо следующее ПО:
Редактор HTMLдокументов (желательноHomeSite4.5 и выше)
Файловый менеджер (желательно WindowsCommander4.0 и выше)
Браузер (желательно InternetExplorer5.0 и выше)
Веб сервер Apache1.3.27 и выше
Интерпретатор языка PHP 4.2.3 и выше
СУБД MySQL 3.23.54
Задание
Создать базу данных
Необходимо создать базу данных, в которой будет храниться информация, отображаемая на страницах сайта.
Разработать скрипт, устанавливающий соединение с сервером баз данных
Скрипт должен устанавливать соединение по следующим параметрам: название сервера, название базы данных, логин и пароль. В случае удачного соединения скрипт должен устанавливать название текущей базы в качестве базы данных по умолчанию.
Разработать принцип хранения данных
Текст документов и информация о количестве загрузок страницы должна храниться в базе данных (п.1). Для хранения данных необходимо разработать одну или несколько связанных таблиц. Структуру таблиц базы данных надо описать при помощи таблиц следующего вида:
Название таблицы | ||
Название поля |
Тип данных |
Описание |
Разработать скрипт, инициализирующий базу данных
Инициализирующий скрипт должен создавать в базе данных таблицы со структурой, разработанной в п.3 . После создания таблиц, скрипт должен занести в базу текст документов, отображаемых на сайте. Информация о количестве загрузок каждого документа должна быть обнулена.
Разработать процедуру формирования документа
Формирование документа осуществляется путем подстановки в шаблон (разработанный в л/р №4) соответствующей информации из базы данных. В шаблоне должна быть обеспечена процедура извлечения информации из базы данных в соответствии с номером запрашиваемого документа. Номер запрашиваемого документа передается в строке запроса при нажатии на соответствующий пункт меню.
Разработать счетчик загрузки для каждой страницы сайта.
Внизу каждой страницы должен располагаться счетчик, отображающий в текстовом виде количество загрузок страницы. Для каждой страницы должен вестись отдельный учет количества загрузок. Счетчик реализуется в виде скрипта на языке PHPи хранит данные о количестве загрузок страниц в базе данных.
Вызов скрипта со счетчиком помещается в шаблон страницы. Номер загружаемой страницы (документа) определяется в соответствии с параметром, получаемым из строки запроса.
Отчет
Отчет о выполнении лабораторной работы должен содержать следующие разделы:
Титульный лист
Скрипт, устанавливающий соединение с базой данных
Структуру таблиц
Скрипт, инициализирующий базу данных
Шаблон документа
Скрипт, осуществляющий работу счетчика
Защита
Защита лабораторной работы осуществляется в специально отведенное время в дисплейном классе института. Для защиты необходимо предоставить отчет о выполнении лабораторной работы и продемонстрировать версию сайта с элементами PHPиMySQL.
Перед демонстрацией сайт должен быть помещен на выделенный сервер при помощи FTPклиента. После закачивания сайта на сервер, необходимо установить параметры соединения с базой данных в соответствующем скрипте и запустить скрипт, инициализирующий базу данных. Логин и пароль для доступа к персональному каталогу учащегося на сервере, а так же логин и пароль к базе данных учащегося (база данных создается заранее системным администратором класса) должен быть получен у преподавателя. Демонстрация работоспособности сайта осуществляется на рабочей станции дисплейного класса путем загрузки страниц сайта с сервера программой просмотра страниц (браузером).
Учащийся допускается к защите ТОЛЬКО ПРИ НАЛИЧИИ отчета и демонстрационной версии сайта.
Пример
Создать базу данных можно из командной строки консольного клиента mysql.exe. Для создания базы данных с именемhomepageнеобходимо запустить клиент и в его командной строке выполнить команду:
create database homepage;
Скрипт, устанавливающий соединение с базой данных (файл connect.inc.php):
<?
define("DBName","homepage"); // название базы данных
define("HostName","localhost"); // название сервера
define("UserName",""); // логин
define("Password",""); // пароль
// установка соединения
if (!mysql_connect(HostName,UserName,Password)) die ("Невозможно установить соединение");
mysql_select_db(DBName); // выбор текущей базы данных
?>
Данные для сайта будут храниться в одной таблице следующего вида
Документы (Documents) | ||
docid |
int not null primary key |
Идентификатор документа |
title |
varchar(255) not null |
Название документа |
content |
text not null |
Содержимое документа |
loadings |
int unsigned not null default 0 |
Количество загрузок страницы |
Скрипт, инициализирующий базу данных (файл init.php)
<?
// Файл инициализации базы данных
require("connect.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> Английский язык (технический)
';
$q=mysql_query("
create table documents(
docid int not null primary key,
title varchar(255) not null,
content text not null,
loadings int unsigned not null default 0
)
");
for ($i=0;$i<count($title);$i++) {
$field_title=addslashes($title[$i]);
$field_content=addslashes($content[$i]);
mysql_query("
insert into documents(docid,title,content)
values($i,'$field_title','$field_content')
");
}
?>
Файл, содержащий шаблон документа (document.php)
<?
// Файл инициализации базы данных
require("connect.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>
<spanclass="bold">Специальность:</span> вычислительные машины, комплексы, системы и сети.<br><br>
<span class="bold"><u>Опыт работы</u></span><br>
1995-2004 ООО "СуперСофт"<br>
<span class="bold">Должность:</span> системный администратор<br><br>
<span class="bold"><u>Профессиональные навыки</u></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="bold"><u>Дополнительные сведения</u></span><br>
<span class="bold">Личные качества:</span> аккуратность, педантичность, обучаемость<br>
<span class="bold">Увлечения:</span> музыка, литература, спорт, компьютерные игры<br>
<span class="bold">Прочее:</span> Английский язык (технический)
';
$q=mysql_query("
create table documents(
docid int not null primary key,
title varchar(255) not null,
content text not null,
loadings int unsigned not null default 0
)
");
for ($i=0;$i<count($title);$i++) {
$field_title=addslashes($title[$i]);
$field_content=addslashes($content[$i]);
mysql_query("
insert into documents(docid,title,content)
values($i,'$field_title','$field_content')
");
}
?>
Скрипт счетчика (counter.inc.php)
<?
// обработка данных счетчика и вывод сообщения о количестве загрузок
$number=++$r["loadings"]; //массив $r определяется в файле document.php
echo '<span class="normal">Количество загрузок страницы: </span><span class="bold">'.$number.'</span>';
mysql_query("update documents set loadings=$number where docid=$page");
?>