Разработка Web-сайта с управляемым контентом: Новостной портал для программистов
Изм.
Лист
№ докум.
Подпись
Дата
Лист
2
230105.65.000008 П.(3 цифры зачетки) ПЗ
Разраб.
Провер.
Бикбулатова Н.Г.
Реценз.
.
Н. Контр.
Бикбулатова Н.Г
Утверд.
Долинер Л.И.
И Н.Г.
Разработка клиент-серверного приложения для управления базой данных склада предприятия
Лит.
Листов
УрТИСИ ФГОБУ ВПО «СибГУТИ»
Изм.
Лист
№ докум.
Подпись
Дата
Лист
П-82.(027) ПЗ
СЕТЕВОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
КП.П-82н.
Федеральное агентство связи
Уральский технический институт связи и информатики (филиал)
Сибирского государственного университета телекоммуникаций и информатики
Кафедра информационных систем и технологий
КУРСОВОЙ ПРОЕКТ
По дисциплине: «Сетевое программное обеспечение»
Разработка Web-сайта с управляемым контентом: Новостной портал для программистов
Вариант № 7
Выполнил:
Студент группы: П-82н
Ярушин Э.А.
Проверил:
доцент кафедры
информационных систем и технологий
Езин А.Н.
г. Екатеринбург, 2013 г.
Содержание
Введение…………………………………………………………
1 Теоритическа
часть……………………………………………………………….
1.1 Предметная область, цель создания и группы пользователей информационно-программного изделия………………………………………….6
1.2 Структурная модель информационно-программного изделия…………….6
2. База
данных………………………………………………………………
2.1 Структурная модель БД………………………………………………………..12
2.2 Физическая реализация БД…………………………………………….………12
3 Проект
удаленного доступа в рамках информационного
- програмного изделия……………………………………………………………
3.1 Сетевая
организация распределения приложения
в архитектуре «клиент-сервер»………………………………………
3.2 Требования к ресурсам сервера и ПК клиента……………………….………15
3.3 Пользовательский
интерфейс………………………………………………….
4 Защита от несанкционированного доступа……………………………………..14
Заключение……………………………………………………
Список
литературы……………………………………………………
Приложение А листинг программы………………………………………………20
Введение
Для автоматизации размещения статей и уроков в Новостном портале предусматривается организация централизованной базы данных на местах обработки информации. Для облегчения работы администраторов при заполнении статей и уроков создаётся информационная база.
Данная база данных разрабатывалась для новостного портала. Разрабатываемая база должна облегчить работу администратора при размещении статей и уроков. Требования к работе изложены в задании на выполнение курсовой работы.
Целью данной курсовой работы является автоматизированое размещение статей и уроков администраторами, хранения информации, а также обеспечение удаленного доступа.
При выполнении курсовой работы были использованы: операционная система Windows и настроенный локальный сервер (Denver + PHP). Для написания сценария информационно-программного изделия был использован язык PHP. Написание сценариев на PHP было осуществлено с помощью приложения Adobe Dreamweaver CS3, обеспечивающего удобное редактирование различных скриптов.
В результате выполнения курсовой работы была решена задача разработки информационно-программного изделия, удаленного доступа к информационным ресурсам новостного портала, а также обеспечения авторизованного доступа и безопасности информационных ресурсов.
1. Теоретическая часть
1.1 Предметная область, цель создания и группы пользователей информационно-программного изделия
Предметной областью курсовой работы является новостной портал. Целью данной курсовой работы является автоматизация работы администраторов.
При разработке информационно - программного изделия, для обеспечения ограниченного доступа и безопасности информационных ресурсов, были выделены следующие группы пользователей: администратор, который может добавлять, удалять и изменять данные. Пользователь, который может только просматривать данные и подписться на новости портала. Таким образом, были определены предметная область информационно - программного изделия и группы пользователей, которые имеют различные права на доступ к информационным ресурсам. Разработанное мною программное изделие позволяет хранить данные о статьях, уроках, а также собирать подписную базу данных.
1.2
Структурная модель
В данном подразделе приводится описание структурной модели создаваемого информационно - программного изделия и описание взаимодействия между отдельными его элементами. Рассмотрим структурную модель создаваемого информационно-программного изделия и взаимодействие между отдельными ее элементами. В результате рассмотрения целей создания информационно-программного изделия и выполняемых им задач была разработана структурная модель, представленная на рис. 1
БД предметной области
Пользовательский интерфейс
Рисунок 1 Структурная модель информационно-программного изделия
Файловая
система пользовательского
lessons.php
contacts.php
view_lesson.php
articles.php
bd.php
Index.php
style.css
header.php
footer.php
lefttd.php
bd.php
Рисунок 1.2 Модульная структура программного продукта
Структурная модель файловой системы пользовательского интерфейса информационно - программного изделия удаленного доступа к информационным ресурсам Интернет-магазина отражает взаимодействие скриптов друг с другом.
В таблице 1 приведено назначение каждого файла файловой системы пользовательского интерфейса.
Таблица 1 Назначение файлов в файловой системе интерфейса пользователя
Файл |
Назначение |
index.php |
Содержит исходный код стартовой страницы |
style.css |
Содержит стили информационно – программного изделия |
articles.php |
Содержит исходный код стартовой страницы статей |
lessons.php |
Содержит исходный код стартовой страницы уроков |
contacts.php |
Содержит исходный код стартовой страницы контактов |
view_article.php |
Содержит скрипт для вывода записей выбранной таблицы |
view_lesson.php |
Содержит скрипт для вывода записей выбранной таблицы |
bd.php |
Соединение с базой данных |
footer.php |
Содержит настройки шаблона футера |
header.php |
Содержит настройки шаблона шапки |
lefttd.php |
Содержит настройки шаблона левого меню |
Карта разрабатываемого сайта представлена на рис. 1.3
Рисунок 1.3 Карта сайта
Таким
образом, была разработана структурная
модель информационно-программного изделия,
а также структурная модель файловой
системы пользовательского
На
предпроектной стадии разработки данного
ресурса был проведен анализ доступных
для использования средств
Основными требованиями при выборе были:
- поддержка языка программирования php (требование хостинга);
- поддержка баз данных MySQL (требование хостинга);
- простота и удобство в использовании;
- минимальное время на установку, настройку и освоение для начала использования.
В результате анализа были отобраны и использованы при разработке следующие инструменты:
Notepad++ (написание макетов страниц и кода)
- свободный
текстовый редактор для Windows с
подсветкой синтаксиса
Основные особенности:
Подсветка текста и возможность сворачивания блоков, согласно синтаксису языка программирования.
Поддержка большого количества языков (C, C++, Java, XML, HTML, PHP, Java Script, ASCII, VB/VBS, SQL, CSS, Pascal, Perl, Python, Lua, TCL, Assembler).
Настраиваемый пользователем режим подсветки синтаксиса.
Одновременная работа с множеством документов.
Одновременный просмотр нескольких документов.
Поддержка регулярных выражений Поиска/Замены.
Полная
поддержка перетягивания
Динамическое изменение окон просмотра.
Заметки.
Выделение скобок при редактировании текста.
Запись макроса и его выполнение.
Adobe Photoshop (редактирование изображений)
- это
один из самых известных
phpMyAdmin в составе Denwer (создание и редактирование БД)
- это
приложение, написанное на PHP и обеспечивающее
полноценную, в том числе
Denwer (тестирование web-ресурса)
-
это набор дистрибутивов (
Adobe Dreamweaver CS3
- редактор
для PHP, Perl, Python, HTML, JavaScript и других
файлов с поддержкой UTF-8. Программа
разработана специально для
Проверка синтаксиса PHP, встроенный браузер, FTP-клиент с поддержкой SFTP, обозреватель кода и файлов, поддержка проектов, настраиваемые шаблоны кода, настраиваемая подсветка кода, и многие другие функции для повышения удобства разработки.
2 База данных
2.1 Структурная модель БД
Рассмотрим структурную модель базы данных, полученную в результате исследования предметной области и построения функциональной диаграммы.
Для начала определим две основные задачи проектируемой системы:
хранить информацию о товарах, сотрудниках и пользователях.
добавлять информацию о товарах, сотрудниках и пользователях.
Из задач проектируемой системы были выявлены такие сущности как: «Статьи», «Уроки», «Главные страницы», «Пользователи».
Основными являются сущности «Страницы» и «Пользователи», которые используются для формирования программного обеспечения и списка пользователей соответственно.
Структурная модель базы данных изображена на рис. 1.4
Рисунок 1.4 Структурная модель базы данных
Таким образом, была разработана структурная модель базы данных, которая легла в основу создания физической модели БД.
2.2 Физическая реализация БД
На основе функциональной модели была создана физическая модель базы данных «Новостного портала». Каждая сущность структурной модели является таблицей в физической модели данных. Для создания базы данных и таблиц был использован локальный сервер, а также СУБД MySQL. База данных и таблицы были созданы путем выполнения запросов на языке SQL.
Для каждой таблицы были определены поля и их типы. Для связи между таблицами использовались первичные ключи, которые были определены для каждой таблицы.
Поля таблицы «settings» и их атрибуты приведены в рисуноке 1.5
Рисунок 1.5 Таблица «Главные страницы» базы данных
Поля таблицы «articles» и их атрибуты приведены в рисунке 1.6
Рисунок 1.6 Таблица «Статьи» базы данных
Поля таблицы «lessons» и их атрибуты приведены в рисунке 1.7
Рисунок 1.7 Таблица «Уроки» базы данных
Поля таблицы «userslist» и их атрибуты приведены в рисунке 1.8
Рисунок 1.8 Таблица «Пользователи» базы данных
3. Проект удаленного доступа в рамках информационно-программного изделия
3.1 Сетевая организация распределения приложения в архитектуре «клиент-сервер»
Информационно-программное
изделие организовано по архитектуре
«клиент – сервер» В этом случае
сетевое программное
Клиент
Сервер
Запрос
Ответ
Рисунок 1.9 Схема архитектуры «клиент-сервер»
3.2 Требования к ресурсам сервера и ПК клиента
Рекомендуемые
технические средства и операционная
система: ПЭВМ типа IBM PC, локальная сеть,
операционная система Microsoft Windows 98/2000/XP/Vista/7.
При создании информационно-программного
изделия рекомендуется
3.3 Пользовательский интерфейс
Для обеспечения удобного доступа к хранимым в базе данных информационным ресурсам был разработан пользовательский интерфейс, который обеспечивает удаленный доступ к ним пользователей.
При начальной загрузке системы запускается начальная страница, представленная на риc. 2.0
Рисунок 2.0 Начальная страница сайта
4.
Защита от
Данная задача была решена средствами языка PHP: для этого была создана защита от несанкционированного доступа к информационным ресурсам.
После того, как был выбран администратор и введен пароль, а затем нажата кнопка Вход, введенные данные сравниваются с данными, которые хранятся в файле в базе данных MySQL.
Если администратор правильно ввел пароль, то он переходит на соответствующую страницу. Данные для входа в систему были описаны выше.
Таким образом, с помощью защиты от несанкционированного доступа обеспечивается ограниченный доступ к базе данных, а также обеспечивается ее безопасность.
Для того чтобы войти в систему администрирования, не обходимо вести в строке названия сайта /admin и нажать Enter.
Данные для входа:
Login: user Pass: 123456 (Администратор).
Для администраторов, определенных выше, загружаються режим администратора.
На рисунке 2.1 представлен вид режима администратора
Рисунок 2.1 Режим администратора
Заключение
В результате выполнения курсовой работы, был разработан и опубликован в сети Internet web-ресурс «Новостной портал для программистов», доступный для ознакомления по адресу: http://useras.ru/
Данный web-ресурс разрабатывался для обучения начинающих программистов. Разрабатываемое информационно - программное изделие должно упростить работу преподователей.
При выполнении курсовой работы был использован локальный сервер (Denver + PHP5). Для написания сценария информационно-программного изделия был использован язык PHP. Написание сценариев на PHP было осуществлено с помощью приложения Adobe Dreamweaver CS3, обеспечивающего удобное редактирование различных скриптов.
В результате выполнения курсовой работы была решена задача упрощения, обучения начинающих программистов по средствам «Новостного портала», а также обеспечения администраторского доступа и безопасности информационных ресурсов.
Список использованных источников
- Лещев Д. Создание интерактивного web-сайта: учебный курс / Д. Лещев. – СПб.: Питер, 2003. – 544 с.
- Мельников П.П. Технология разработки HTML-документов: Учеб. Пособие. – М.: Финансы и статистика, 2005. – 112 с.
- Попов В.П. Основы информационных и телекоммуникационных технологий. Сетевые информационные технологии: Учеб. Пособие. – М.: Финансы и статистика, 2005. – 244 с.
- Обучающий курс сайтостроения Е.Попова «PHP+MySQL для начинающих»
Приложения А
Листинг программы
index.php
<?php
include ("blocks/bd.php"); /*Соединяемся с базой*/
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='index'",$db); /*Выборка с базы в переменную*/
$myrow = mysql_fetch_array($result); /*Выборка с базы в масив*/
?>
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/
<html>
<head>
<meta name="description" content="<?php echo $myrow['meta_d']; ?> ">
<meta name="keywords" content="<?php echo $myrow['meta_k']; ?> ">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title><?php echo $myrow['title']; ?></title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<table width="690" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">
<!--Подключаем шапку сайта-->
<? include("blocks/header.php");
<tr>
<td><table width="690" border="0" cellspacing="0" cellpadding="0">
<tr>
<!--Подключаем левый блок сайта-->
<? include ("blocks/lefttd.php"); ?>
<td valign="top">
<?php echo $myrow['text']; ?>
</td>
</tr>
</table></td>
</tr>
<!--Подключаем нижний графический элемент-->
<? include ("blocks/footer.php"); ?>
</table>
</body>
</html>
bd.php
<?
$db = mysql_connect ("localhost","php","12345");
mysql_select_db("phpsite",$db)
?>
header.php
<tr>
<td><img src="img/header.jpg" width="690" height="120"></td>
</tr>
lefttd.php
<td width="182px" valign="top" class="left">
<p align="center" class="title">Навигация</p>
<div id="coolmenu">
<a href="index.php">Главная</a>
<a href="articles.php">Статьи</a>
<a href="lessons.php">Уроки</a>
<a href="contacts.php">О нас</a>
</div>
<p align="center" class="title2">Рассылка</p>
<div class="formm" width="80%">
<p class='form3'>
Подписывайтесь на нашу
<form name="SR_form"
method="post" target="_blank" action="http://smartresponder.
<input type=hidden name=version value="1">
<input type=hidden name=tid value="34769">
<input type=hidden name=uid value="27025">
<input type=hidden name=charset value="windows-1251">
<input type=hidden name=lang value="1">
<input type=hidden name="did[]" value="9267">
<p class='form1'> Имя на русском:
<input type="text" name="field_name_first" size=23 value='' maxlength=50 style='border: 1px #c1c1c1 solid; font-family: Verdana; font-size: 11px; width:120px; color:#424242;'></p>
<p class='form1'> Email адрес:
<input type=text name="field_email" size=23 value='' maxlength=50 style='margin:0px; padding:0px; border: 1px #c1c1c1 solid; font-family: Verdana; font-size: 11px; width:120px; color:#424242;'></p>
<p style='margin:5px;margin-top:
<input type="submit" name="SR_submitButton" value='Подписаться' style=' font-family: Verdana, sans-serif; border:1px gray solid; font-size: 11px; width:120px; height:19px; background-Color:#f6f6f6; color:#424242; font-weight:bold; margin-left:10px;' >
</p>
</form>
</div>
footer.php
<tr>
<td><img src="img/footer.jpg" width="690" height="15"></td>
</tr>
articles.php
<?php
include ("blocks/bd.php"); /*Соединяемся с базой*/
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='articles'",$db);
$myrow = mysql_fetch_array($result);
?>
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/
<html>
<head>
<meta name="keywords" content="<?php echo $myrow['meta_k']; ?>">
<meta name="description" content="<?php echo $myrow['meta_d']; ?>">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title><?php echo $myrow['title']; ?></title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<table width="690" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">
<!--Подключаем шапку сайта-->
<? include("blocks/header.php");
<tr>
<td><table width="690" border="0" cellspacing="0" cellpadding="0">
<tr>
<!--Подключаем левый блок сайта-->
<? include ("blocks/lefttd.php"); ?>
<td valign="top">
<?php echo $myrow['text']; ?>
<?php
$result = mysql_query ("SELECT
id,title,description,author,
$myrow = mysql_fetch_array ($result);
do {
printf ("<table align='center' class='lesson'>
<tr>
<td class='lesson_title'>
<p
class='lesson_name'><a href='view_article.php?id=%s'>
<p class='lesson_adds'>Дата добавления: %s</p>
<p class='lesson_adds'>Автор статьи: %s</p></td>
</tr>
<tr>
<td>%s</td>
</tr>
</table><br><br>",
$myrow["id"], $myrow["title"],$myrow["date"]
}
while ($myrow = mysql_fetch_array ($result));
?>
</td>
</tr>
</table></td>
</tr>
<!--Подключаем нижний графический элемент-->
<? include ("blocks/footer.php"); ?>
</table>
</body>
</html>
lessons.php
<?php
include ("blocks/bd.php"); /*Соединяемся с базой*/
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='lessons'",$db);
$myrow = mysql_fetch_array($result);
?>
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/
<html>
<head>
<meta name="description" content="<?php echo $myrow['meta_d']; ?>">
<meta name="keywords" content="<?php echo $myrow['meta_k']; ?>">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title><?php echo $myrow['title']; ?></title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<table width="690" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">
<!--Подключаем шапку сайта-->
<? include("blocks/header.php");
<tr>
<td><table width="690" border="0" cellspacing="0" cellpadding="0">
<tr>
<!--Подключаем левый блок сайта-->
<? include ("blocks/lefttd.php"); ?>
<td valign="top">
<p><?php echo $myrow['text']; ?> </p>
<?php
$result = mysql_query ("SELECT
id,title,description,author,
$myrow = mysql_fetch_array ($result);
do {
printf ("<table align='center' class='lesson'>
<tr>
<td class='lesson_title'>
<p
class='lesson_name'><a href='view_lesson.php?id=%s'>%
<p class='lesson_adds'>Дата добавления: %s</p>
<p class='lesson_adds'>Автор урока: %s</p></td>
</tr>
<tr>
<td>%s</td>
</tr>
</table><br><br>",
$myrow["id"], $myrow["title"],$myrow["date"]
}
while ($myrow = mysql_fetch_array ($result));
?>
<p> </p></td>
</tr>
</table></td>
</tr>
<!--Подключаем нижний графический элемент-->
<? include ("blocks/footer.php"); ?>
</table>
</body>
</html>
contacts.php
<?php
include ("blocks/bd.php"); /*Соединяемся с базой*/
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='contacts'",$db);
$myrow = mysql_fetch_array($result);
?>
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/
<html>
<head>
<meta name="keywords" content="<?php echo $myrow['meta_k']; ?>">
<meta name="description" content="<?php echo $myrow['meta_d']; ?>">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title><?php echo $myrow['title']; ?></title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<table width="690" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">
<!--Подключаем шапку сайта-->
<? include("blocks/header.php");
<tr>
<td><table width="690" border="0" cellspacing="0" cellpadding="0">
<tr>
<!--Подключаем левый блок сайта-->
<? include ("blocks/lefttd.php"); ?>
<td valign="top">
<?php echo $myrow['text']; ?>
</td>
</tr>
</table></td>
</tr>
<!--Подключаем нижний графический элемент-->
<? include ("blocks/footer.php"); ?>
</table>
</body>
</html>
view_article.php
<?php
include ("blocks/bd.php"); /*Соединяемся с базой*/
if (isset($_GET['id'])) {$id = $_GET['id'];}
$result = mysql_query("SELECT * FROM articles WHERE id='$id'",$db);
$myrow = mysql_fetch_array($result);
?>
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/