Phpmyadmin курсовая работа

Основы создания простого сайта на PHP и MYSQL

Основы создания простого сайта на PHP и MYSQL

1.      
Описание предметной области. Постановка задачи

Для закрепления теоретических знаний, а также навыков проектирования БД,
полученных при изучении курса «Базы данных» мы будем создавать «Простой сайт на
PHP и MYSQL».

Для создания php-сайта также
необходимы соответствующие знания php-программирования. Для их получения был изучен специальный теоретический
видеокурс по php-программированию.

В рамках данного курсового проекта будут показаны следующие этапы:

·        Структура php-файлов
сайта;

·        Соединение сайта с базой данных mysql;

·        Извлечение из базы информации;

·        Подключение блоков к сайту;

·        Наполнение сайта текстовым содержание, путём ручного ввода
данных в базу данных mysql;

·        Создание администраторского раздела сайта (админка);

·        Наполнение сайта содержимым через администраторский раздел;

·        Установка пароля на администраторскую зону;

·        Реализация возможности редактирования/добавления/удаления
данных в базе данных через администраторскую зону сайта;

В итоге получится простой сайт, написанный на php, который будет состоять из нескольких разделов
(видимая часть сайта):

.         Главная страница (фиксированные размеры, статичная информация)

.         Статьи (которые выводятся из базы данных)

.         Уроки (также берутся из базы данных)

.         О нас (статичная информация)

При желании можно изменить названия страниц, например: Статьи — на
Услуги, Уроки — на Товары.

Также на сайте будет реализована администраторская зона (невидимая часть
сайта), состоящая из разделов:

.         Добавить

.         Редактировать

.         Удалить

У каждого пункта видимой части сайта — будут реализованы соответствующие
функции в невидимой части сайта.

В конечном итоге должен получиться вот такой вот сайт (видимая часть):

Невидимая часть

Приступим к реализации этого сайта.

2.       Выбор средств/методологии проектирования. Выбор СУБД

сайт база данные

Для создания базы данных была выбрана СУБД — MySQL.

MySQL
— это свободная СУБД от компании Oracle Corporation. MySQL входит в состав портативной сборки сервера Denwer.

Гибкость СУБД MySQL
обеспечивается поддержкой большого количества типов таблиц. Более того, СУБД
MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим
принципы создания новых типов таблиц. Благодаря открытой архитектуре и
GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

MySQL
портирована на большое количество платформ, в том числе для Windows XP.

MySQL
имеет API для языков Delphi, C, C++, Эйфель, Java, Лисп, Perl, PHP, Python, Ruby, Smalltalk и Tcl, библиотеки для языков платформы .NET, а также обеспечивает поддержку для ODBC посредством ODBC-драйвера MyODBC.

Для разработки базы данных в рамках данного курсового проекта
использовалась СУБД MySQL 5.0.45.

В данной версии СУБД MySQL
реализована практически полная поддержка стандарта SQL.

Для установки локального сервера на персональный компьютер и создания
базы данных, использовался виртуальный (локальный) сервер Denwer.

Денвер (джентльменский набор Web-разработчика) — набор дистрибутивов и программная оболочка,
предназначенные для создания и отладки сайтов (веб-приложений, прочего
динамического содержимого интернет-страниц) на локальном ПК (без необходимости
подключения к сети Интернет) под управлением ОС Windows.

В базовый пакет Денвера входит:

·        Веб-сервер Apache с поддержкой SSI, SSL, mod_rewrite,
mod_php.

·        Интерпретатор PHP с поддержкой GD, MySQL, SQLite.

·        СУБД MySQL с поддержкой транзакций (mysqld-max).

·        Система управления виртуальными хостами, основанная на
шаблонах.

·        Система управления запуском и завершением.

·        Панель phpMyAdmin для администрирования СУБД.

·        Ядро интерпретатора Perl без стандартных библиотек
(поставляются отдельно).

·        Эмулятор sendmail и сервера SMTP с поддержкой работы
совместно с PHP, Perl, arser и др.

·        Установщик.

Сразу после установки доступен полностью работающий веб-сервер Apache,
работающий на локальном компьютере, на котором может работать неограниченное
количество сайтов, что очень эффективно для разработки и отладки сценариев PHP
без загрузки его файлов на удаленный сервер. Для запуска практически всех
утилит «Денвера» используется приложение Run в подкаталоге /denwer (или /etc)
корневого каталога установки «Денвера». При запуске создается виртуальный диск
(по умолчанию Z:), где хранятся все файлы проектов.

При разработке данного курсового проекта и создания базы данных,
использовался Denwer третьей версии.

В него входят:

·        PHP версии 5.2.4

·        phpMyAdmin версии 2.6.1

·        MySQL версии 5.0.45

Этого нам достаточно, чтобы приступить к работе над проектом.(англ. PHP:
Hypertext Preprocessor — «PHP: препроцессор гипертекста», «Инструменты для
создания персональных веб-страниц») — скриптовый язык программирования общего
назначения, интенсивно применяемый для разработки веб-приложений. В настоящее
время поддерживается подавляющим большинством хостинг-провайдеров и является
одним из лидеров среди языков программирования, применяющихся для создания
динамических веб-сайтов.

Популярность в области построения веб-сайтов определяется наличием
большого набора встроенных средств для разработки веб-приложений.

Основные из них:

·        Автоматическое извлечение POST и GET-параметров, а также
переменных окружения веб-сервера в предопределённые массивы;

·        Взаимодействие с большим количеством различных систем
управления базами данных (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8),
Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache
Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro,
Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс
PDO);

·        Автоматизированная отправка HTTP-заголовков;

·        Работа с HTTP-авторизацией;

·        Работа с cookies и сессиями;

·        Работа с локальными и удалёнными файлами, сокетами.

·        Обработка файлов, загружаемых на сервер;

·        Работа с XForms;

В настоящее время PHP используется сотнями тысяч разработчиков. Согласно
рейтингу корпорации TIOBE, базирующемся на данных поисковых систем, в апреле
2011 года PHP находился на 5 месте среди языков программирования.[5] К
крупнейшим сайтам, использующим PHP, относятся Facebook, ВКонтакте, Wikipedia и
др.

Входит в LAMP — распространённый набор программного обеспечения для
создания веб-сайтов (Linux, Apache, MySQL, PHP).

В процессе разработки данного курсового проекта, а именно
извлечение/редактирование/удаление данных в базе данных посредством php-кода, были использованы следующие
функции и конструкции языка php:

·        Основные конструкции IF-ELSE;

·        Вложенные конструкции IF-ELSE;

·        Цикл WHILE (DO-WHILE);

·        Массивы;

·        Ассоциативные массивы;

·        Функции даты и времени;

·        Функция ISSET;

·        Передача переменных методами GET и POST;

·        Суперглобальный массив $_SERVER;

·        Инструкция INCLUDE;

·        Функции соединения с базой данных;

·        Функция выборки из базы данных;

·        Вывод данных из базы данных в цикле;

·        Цикл PRINTF;

·        Оператор выборки — SELECT;

·        Оператор вставки — INSERT;

·        Оператор обновления — UPDATE;

·        Оператор удаления — DELETE;

3.       Структура нашего проекта

У нас будет 2 части сайта: Общая часть и Администраторская часть.

Общая часть сайта будет состоять из 6 php-файлов и 2 папок.

(об остальных файлах будет рассказано позже…)

Папка IMG будет содержать в себе 3 изображения:

·        bg.gif — фоновое изображение;

·        header.jpg — шапка
сайта;

·        150-for-blog.png — 3D-бокс в пункте меню: рассылка;

Файлы:

.         index.php — будет отвечать за вывод главной страницы сайта;

.         articles.php — будет отвечать за вывод из базы данных, списка
статей;

.         lessons.php — будет отвечать за вывод из базы данных, списка
уроков;

.         contacts.php — будет отвечать за отображение страницы «О нас»;

.         view_lesson.php — будет отвечать за вывод конкретного урока,
при нажатии на ссылку этого урока на странице файла lessons.php;

.         view_articles.php — будет отвечать за вывод конкретной статьи,
при нажатии на ссылку этой статьи на странице файла articles.php;

Папка blocks будет содержать в себе файлы, в которых будут вынесены
отдельные блоки сайта. Сайт разделяется на блоки для того, чтобы им было легко
управлять, изменять тысячи страниц сайта — одним файлом.

Администраторская часть будет состоять из следующих файлов и папок (о них
будет рассказано позже) — папка «admin»:

База данных будет хранить все тексты, статьи, уроки и.т.д.

4.       Главная страница сайта

Главная страница сайта выглядит так:

Исходный код данной страницы выглядит так:

<?php «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» «#»576604.files/image007.gif»>

·        Создадим таблицу settings, которая будет содержать все настройки, тексты статей,
уроков, текст главной страницы, текст страницы «О нас», названия страниц
(мета-тэг title), мета-тэг ключевых слов, описания
и.т.д. В этой таблице нам понадобится 6 полей.

·        Заполняем все поля, как показано на рисунке ниже и нажимаем
«Сохранить»:

·        Нажав по кнопке «Вставить» мы можем вставить первую запись в
нашу таблицу;

·        Заполняем 4 страницы, которые есть у нас в меню, а именно:
index.php, contacts.php, lessons.php и articles.php.

Рассмотрим заполнение на примере главной страницы (index.php)

Значение поля id присваивается
автоматически, т.к при создании таблицы мы установили этому полю, значение —
auto_increment;

Поле page — заполняем для той страницы,
которая нам нужна.

Поле title — заголовок страницы;

Поле meta_d — необходимо для мета-тега description;

Поле meta_k — необходимо для мета-тега keywords;

Поля meta_d и meta_k необходимы для поисковых систем
(например, Яндекс, Google)

Таким образом, заполняем все поля подобным образом, для 3-х остальных
страниц.

Теперь мы можем увидеть, что у нас есть 4 новых записи, для каждой из
наших страниц.

·        Добавляем нового пользователя к базе данных (Привилегии ->
Добавить нового пользователя). Пусть будет пользователь с именем «php» и
паролем «12345»

Даём нашему пользователю все привилегии, чтобы при дальнейшей работе не
возникало никаких проблем.

За подключение к базе данных у нас будет отвечать файл bd.php

7.       Извлекаем данные из базы данных

Первым делом нам нужно соединиться с нашей базой данных. Для этого
пропишем следующий php-код в нашем
файле bd.php:

<? $db = mysql_connect
(«localhost»,»php»,»12345″);_select_db
(«phpsite»,$db); ?>

Функция mysql_connect отвечает за подключение к базе данных. В скобках
указываем 3 параметра: сервер (localhost), пользователя (php),
пароль (12345);

Заносим функцию в переменную $db.

Теперь, после подключения файла bd.php на каждой странице, нам нужно вытащить
из базы данных 4 поля: название, описание, ключевые слова и сам текст.

<?php «blocks/bd.php»;/*Соединяемся с базой*/

$result = mysql_query («SELECT title,meta_d,meta_k,text
FROM settings WHERE page=’index'»,$db);

$myrow = mysql_fetch_array ($result);

?>

Делаем выборку (SELECT) и указываем, какие нам нужны поля
(title,meta_d,meta_k,text), затем из какой таблицы (FROM settings), затем из какого поля (WHERE page=’index'»,$db)

Занесём результат работы этой функции в переменную ($result). Чтобы работать с этими
результатами, нам нужно создать переменную ($myrow) и уже в неё мы будем заносить результат работы
функции.

В $myrow заносится массив из 4 ячеек.

Выводим информацию на странице. Мета-тег описание, ключевых слов, текст и
заголовок страницы. Выводим через функцию echo.

<title><?php echo $myrow [‘title’];
?></title>

<meta name=»description» content=»<?php
echo $myrow [‘meta_d’]; ?>»>

<meta name=»keywords» content=»<?php
echo $myrow [‘meta_k’]; ?>»>

Текст:

<?php echo $myrow [‘text’]; ?>

Таким же образом изменяем остальные 3 страницы: lessons.php,
articles.php, contacts.php.

8.       Таблица lessons и добавление уроков

Весь текст уроков хранится в базе данных. Картинки хранятся в отдельных
папках на сервере, а базах хранятся ссылки на них.

На странице lessons.php будут отображаться все уроки из
таблицы lessons. Выглядеть это должно вот так:

Т.е у нас будет идти сперва статичная информация файла lessons.php, затем будет идти список из всех существующих уроков
в базе данных.

Каждый урок будет выводиться в отдельной табличке, а в ней будет идти:
название урока, дата добавления урока, автор урока и краткое описание урока.

Нам понадобятся следующие поля: title, description,
meta_d, meta_k, text, author, date, id.

·        Поле title
— название урока.

·        Поле description — краткое описание урока.

·        Поле id —
заполняется автоматически.

·        Поле author
— автор урока.

·        Поле date —
дата добавления урока.

·        Остальные поля нам уже знакомы.

Заходим в phpMyAdmin и
создадим новую таблицу: lessons
с 8 полями.

Пока что в ней нет ни одной записи.

Картинки будем хранить в отдельной папке на нашем сайте. Каждый урок —
отдельная папка.

Общая папка lessons — >
папка с датой добавления урока -> папка с названием урока; Копируем все
картинки добавляемого урока в эту папку.

Теперь создадим страницу с шаблоном для добавления нового урока
(lessons_template.php). Пишем на этой странице какой-то текст, вставляем
картинки и.т.д.

После написания и редактирования текста, мы копируем его (т.е готовый html-код с ссылками на картинки) и
вставляем в таблицу lessons в базу
данных (в поле text). Заполняем
все поля и сохраняем.

Добавляем еще один урок:

Теперь у нас есть 2 урока в таблице. Есть 2 папки с рисунками на сервере.

Сейчас займемся выводом анонсов тех уроков, которые есть в базе данных.

Вот рабочий код страницы lessons.php:

<?php «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» «#»576604.files/image019.gif»>

Должен подгружаться файл view_lesson.php, который будет выводить на страницу именно этот урок:
«Выбор платформы для создания блога». И будет это выглядеть так:

И потом будет загружаться именно этот урок:

Будут отображаться: Дата добавления, Автор, название и сам текст (стрелка
«вниз»);

Исходный, рабочий код страницы view_lesson.php:

<?php «blocks/bd.php»;/*Соединяемся с базой*/

(isset($_GET[‘id’])) {$id = $_GET[‘id’];}

$result = mysql_query («SELECT * FROM lessons WHERE
id=’$id'»,$db);

$myrow = mysql_fetch_array ($result);

?>

<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01
Transitional//EN» «#»576604.files/image022.gif»>

И вывод отдельной статьи при нажатии на самую первую ссылку:

.         Создание блока администратора (админка)

Упрощение работы над сайтом. Упрощенное
добавление/редактирование/удаление статей/уроков/страниц. Создание невидимой
области сайта.

Структура файлов администраторской области выглядит так:

Пояснение: 2 папки blocks
и img.

Папка img содержит все те же изображение. А
вот структура файла left.php в папке blocks — немного изменилась и выглядит так:

<td width=»182″>

          <p align=»center»>Уроки</p>

<div id=»coolmenu»>

<a href=»new_lesson.php»>Добавить</a>

<a href=»del_lesson.php»>Удалить</a></div>

          <p align=»center»>Статьи</p>

<div id=»coolmenu»>

<a href=»new_article.php»>Добавить</a>

<a href=»edit_article.php»>Редактировать</a>

<a href=»del_article.php»>Удалить</a></div>

<p align=»center»>Тексты</p>

<div id=»coolmenu»>

<a href=»edit_text.php»>Редактировать</a></div>

</td>

Зона администратора выглядит так:

Теперь, за что же отвечает каждый файл в папке «admin»

·        add_article.php — файл, занимающийся обработкой
данных, посылаемых из формы файла new_article.php;

·        add_lesson.php — файл, занимающийся обработкой
данных, посылаемых из формы файла new_lesson.php;

·        del_article.php — файл, содержащий в себе список
(радио-кнопки) ВСЕХ статей в базе данных, выводимых на экран;

·        del_lesson.php — файл, содержащий в себе список
(радио-кнопки) ВСЕХ ehjrjd в базе
данных, выводимых на экран;

·        drop_article.php — файл, который занимается удалением
выбранной статьи на странице del_article.php;

·        drop_lesson.php — файл, который занимается удалением
выбранного урока на странице del_lesson.php;

·        edit_article.php — файл, содержащий в себе список
всех статей в базе данных и при нажатии на каждую из них, данные извлекаются из
базы данных и подставляются в форму;

·        edit_lesson.php — файл, содержащий в себе список
всех уроков в базе данных и при нажатии на каждый из них, данные извлекаются из
базы данных и подставляются в форму;

·        edit_text.php — файл, содержащий в себе список
всех статичных страниц в базе данных и при нажатии на каждую из них, данные
извлекаются из базы данных и подставляются в форму;

·        index.php —
главная страница администраторской области.

·        lock.php —
файл, который позволяет защитить админку от взлома (установщик/проверящик
пароля) — о нём будет сказано позже;

·        new_article.php — файл, содержащий форму добавления
новой статьи.

·        new_lesson.php — файл, содержащий форму добавления
нового урока.

·        style.css — таблица стилей.

·        update_article.php — файл, занимающийся обработкой
данных, которые передаются из файла edit_article.php. Затем обработчик просто заменяет старые значения
полей в базе — на новые (которые передались через форму файла edit_article.php)

·        update_lesson.php — файл, занимающийся обработкой
данных, которые передаются из файла edit_lesson.php. Затем обработчик просто заменяет старые значения
полей в базе — на новые (которые передались через форму файла edit_lesson.php)

·        update_text.php — файл-обработчик данных,
передаваемых из файла edit_text.php. Процесс тот-же что и в файлах update_lesson.php и update_article.php.

В рамках данного курсового проекта мы разберем только возможность
добавления/редактирования/удаления уроков (lessons) и статичных страниц («Тексты»). Всё потому, что те
же самые процессы выполняются и в пункте со статьями (articles) — поэтому нет смысла показывать все
по 2 раза!

12.     Добавление нового урока в базу данных через админку

Схема проста: первый файл (new_lesson.php) выводит нам форму добавления нового урока (статьи).

Затем, после ввода всех данных в поля формы и нажатия кнопки «Занести
урок в базу!» — данные передаются на обработку другому файлу (обработчику — add_lesson.php),
а тот в свою очередь проверяет, все ли поля были переданы в предыдущей форме, и
если все норм, то данные заносятся в базу и в таблице lessons появляется новая запись (с новым значением поля id).

Приступим к созданию этих двух файлов.

Первый файл: new_lesson.php будет выглядеть так:

Исходный код выглядит так:

<?php include («lock.php»);?>

<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01
Transitional//EN» «#»576604.files/image028.gif»>

Затем, после того, как мы выберем какой-то конкретный урок, этот же самый
файл (edit_lessons.php)
сделает запрос к базе и вытащит все данные из той строки, которую мы ему
сказали. А потом он подставит все эти данные в соответствующие ему поля заранее
подготовленной формы.

После того, как мы нажмем на кнопку «Сохранить изменения», то все
измененные данные (если изменения конечно же были в полях) отправятся
обработчику, т.е файлу update_lesson.php.

Вот исходный код страницы edit_lesson.php:

<?php(«lock.php»);»blocks/bd.php»;/*Соединяемся
с базой*/(isset($_GET[‘id’])){$id=$_GET[‘id’];}

?>

<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01
Transitional//EN» «#»576604.files/image030.gif»>

Исходный код файла del_lesson.php:

<?php («lock.php»);»blocks/bd.php»;/*Соединяемся с базой*/

?>

<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01
Transitional//EN» «#»576604.files/image031.gif»>

Исходный код страницы edit_text.php:

<?php(«lock.php»);»blocks/bd.php»;/*Соединяемся с базой*/(isset($_GET[‘id’])){$id=$_GET[‘id’];}

?>

<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01
Transitional//EN» «#»576604.files/image032.gif»>

Исходный код файла lock.php:

<?php(«blocks/bd.php»);(!isset($_SERVER[‘PHP_AUTH_USER’]))

{(«WWW-Authenticate: Basic realm=»Admin
Page»»);(«HTTP/1.0 401 Unauthorized»);();

}

{(!get_magic_quotes_gpc()) {

$_SERVER[‘PHP_AUTH_USER’] = mysql_escape_string($_SERVER[‘PHP_AUTH_USER’]);

$_SERVER[‘PHP_AUTH_PW’] =
mysql_escape_string($_SERVER[‘PHP_AUTH_PW’]);

}

$query = «SELECT pass FROM userlist WHERE
user='».$_SERVER[‘PHP_AUTH_USER’].»‘»;

$lst = @mysql_query($query);

(!$lst)

{(«WWW-Authenticate: Basic realm=»Admin Page»»);(«HTTP/1.0
401 Unauthorized»);();

}

(mysql_num_rows($lst) == 0)

{(«WWW-Authenticate: Basic realm=»Admin
Page»»);(«HTTP/1.0 401 Unauthorized»);();

$pass = @mysql_fetch_array($lst);($_SERVER[‘PHP_AUTH_PW’]!=
$pass[‘pass’])

{(«WWW-Authenticate: Basic realm=»Admin
Page»»);

Header («HTTP/1.0 401 Unauthorized»);();

}

}

?>

17.    
 Заключение

В результате всех действий над разработкой сайта, над разработкой базы
данных для этого сайта — у нас получился готовый сайт, который в принципе можно
выкладывать на удаленный сервер (на хостинг), чтобы на него смогли заходить
посетители.

Что нужно сделать, если Вы решите выкладывать данный php-сайт в интернет?

.         Платный хостинг и домен.

.         База данных.

Как извлечь (экспортировать) базу данных из локального сервера, чтобы
потом импортировать на удаленном сервере?

·        Заходим в phpMyAdmin и выбираем нашу базу (phpsite)

·        Заходим по вкладке «Экспорт»

·        Нажимаем по ссылке «Отметить все» (т.е этим действием мы выбираем
все имеющиеся в данной базе данных — таблицы) и выбираем формат, в котором мы
хотим экспортировать базу (рекомендую SQL-формат).

·        Нажимаем по кнопке «Пошел»

·        Сохраняем весь текст в отдельный txt-документ.

·        Заходим в phpMyAdmin на своем хостинге и заходим во вкладку SQL.

·        Вставляем в поле ввода sql-запроса — весь текст, который лежит у нас в txt-документе.

·        Нажимаем по кнопке «Ок»

·        База успешно импортирована на Ваш хостинг.

·        Создаете на своем хостинге нового пользователя (логин и
пароль придумайте посложнее!)

·        Закачиваете все файлы, предварительно отредактировав файлы bd.php в папке blocks — в корне сайта и bd.php в папке admin/blocks.
Вам нужно заменить лишь логин и пароль от пользователя БД на вашем хостинге.

Список литературы

1.       Обучающий видеокурс
Евгения Попова «PHP и MySQL для начинающих» (<http://www.smartwebmaster.ru/link/popov/php+mysql.html>)

  • 1
  • 2
  • 3
  • 4
  • 5

назад (Назад)скачать (Cкачать работу)

Функция «чтения» служит для ознакомления с работой. Разметка, таблицы и картинки документа могут отображаться неверно или не в полном объёме!

выводить нужную информацию. Все эти действия выполняются с помощью SQL (Structured Query Language) запросов SELECT, DELETE, CREATE, INSERT.

3.1 ER-диаграмма

Исходя из требований к созданию веб-сайта, была составлена структура БД.

Центральным объектом в ER-диаграмме (Рис.1) разрабатываемого сайта является таблица products.

Рис.1. ER-диаграмма. Все таблицы имеют идентификатор. Каждый товар обладает связями с категориями, производителями, картинками. Один товар может принадлежать к нескольким категориям, поэтому была создана таблица product_category, в которой определяется принадлежность товара к определённой категории. Производитель может изготавливать товары из разных категорий. На некоторые товары могут распространяться скидки.

3.2 Создание БД с помощью PHPMyAdmin

Для работы с БД и разработки ее структуры и наполнения существует большое количество приложений, в частности, PHPMyAdmin, MySqlManager, MySQL Administrator, MySQL GUI Tools и другие. Из всех приложений для работы с базой данных выбор был сделан в пользу PHPMyAdmin, так как он обладает следующими преимуществами:

    Бесплатное распространение. PHPMyAdmin является свободно распространяемым продуктом.Актуальность. Большинство разработчиков используют PHPMyAdmin в качестве приложения для работы с СУБД.Понятный интерфейс. Можно обходиться без непосредственного ввода SQL команд и посмотреть результат.Наличие документации. Существует огромное количество пособий по работе с PHPMyAdmin.Входит в состав стадартной поставки веб-сервера XAMPP.

Для работы с PHPMyAdmin, необходимо выполнить следующую последовательность действий:

. С помощью XAMPP запустить MySql;

2. Перейти на страницу с PHPMyAdmin (http://localhost/phpmyadmin);

. Создать пользователя, который сможет работать с созданной БД, обладая всеми привилегиями. Во вкладке привилегии добавить нового пользователя (Рис.2).

Рис.2. Добавление нового пользователя. 4. Заполнить поле имя пользователя, в поле хост выбрать localhost, создать пароль (Рис.3).

Рис.3. Форма заполнения. 5. Выбрать все глобальные привилегии (Рис.4).

Рис.4. Глобальные привилегии. На главной странице PHPMyAdmin в поле «Новая база данных» необходимо вписать название БД «shop«. Для создания таблиц в поле «Создать новую таблицу в базе данных shop«, вписать названия таблиц. Для заполнения нужной таблицы, выбрать её название и нажать на вкладку «Вставить».

4. Фреймворк Codeigniter. Настройка и совмещение c веб-сервером XAMPP

Основой работы CodeIgniter является использование подхода MVC (Model-View-Controller, Рис.5) — архитектура программного обеспечения, в которой модель данных приложения, пользовательский интерфейс и управляющая логика разделены на три отдельных компонента, так, что модификация одного из компонентов оказывает минимальное воздействие на другие. Шаблон MVC позволяет разделить данные, представление и обработку действий пользователя на три отдельных компонента.

Контроллер (Controller) отправляет запрос в модель (Model), которая изменяет своё состояние и предоставляет данные (обычно для View). Представление (View) отвечает за отображение информации. Поведение (Controller) интерпретирует данные, которые вводились пользователем, и информируют модель и представление о необходимости соответствующей реакции. Примером в данном случае может служить следующая последовательность: catalog/categorydetails/1. В этом

  • 1
  • 2
  • 3
  • 4
  • 5

Интересная статья: Быстрое написание курсовой работы


Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке «Файлы работы» в формате PDF

Проект направлен на разработку информационного сайта «Брачное агентство» с использованием клиент-серверных технологий.

Главная причина распространения информационных технологий появление глобальная сеть интернет, они уже настолько прочно вошли в нашу жизнь, что публикация информации в WWW стала нормой. Поэтому организация взаимодействия информационной системы с web-сервером.

Под информационной системой обычно понимается комплекс программ ориентированный на сбор, хранение, поиск и обработку текстовой и/или фактографической информации. Подавляющее большинство информационных систем работает в режиме диалога с пользователем.

Преимуществом данного подхода можно назвать:

— отсутствие дублирования кода программы-сервера программами-клиентами;

— так как все вычисления выполняются на сервере, то требования к компьютерам, на которых установлен клиент, минимальны;

— все данные хранятся на сервере, который, как правило, защищён гораздо лучше большинства клиентов.

Однако в данном подходе имеется существенный недостаток: при выходе из строя сервера, вся вычислительная сеть становится неработоспособной.

В данной работе такой подход является оптимальным, т.к. имеется возможность обслуживать множественные запросы и возможность хранить большой объем данных.

Актуальность данной работы заключается в том, чтов сети Internet имеется множество информационных ресурсов данной тематики, однако большинство из них не соответствуют необходимым критериям пользователей, в связи с этим необходимость создания удобного и простого в использовании информационного ресурса остается актуальной.

Целью является разработка web-приложения «Брачное агентство» с использованием JavaScript, PHP и СУБД MySQL.

Исходя из цели, были поставлены следующие задачи:

— анализ предметной области;

— построение логической и физической моделей БД;

— реализация спроектированной БД;

— проектирование и разработка web-приложения.

1. Анализ предметной области и выбор инструментальных средств разработки Web-приложения

Системный анализ предметной области

Сайт – это один из способов представления информации о компании. Это тот же рекламный проспект, или просто прайс-лист, или каталог товаров, или перечень услуг, или фотогалерея работ. Деление сайтов на разновидности имеет условный характер. Любой сайт в зависимости от своего предназначения может включать или не включать в себя те или иные функции.

Типы сайтов:

— сайт-визитка.

Сайты этого типа отличаются лаконичностью. Как правило, сайт-визитка является вариантом рекламного буклета, размещенного в Интернете с информацией о компании, товарах и услугах. Обычно, это 5-10 статичных страниц с описанием компании, возможно схемой проезда к офису, некоторые описания основных товаров и услуг.

— корпоративный сайт.

Корпоративные сайты включают в себя большое количество функциональных, тематических разделов и информационных блоков, имеют возможность оперативного управления контентом сайта, что позволяет обновлять информацию на сайте и управлять всеми его сервисами.

— интернет-магазин.

Интернет-магазин, пожалуй, один из самых популярных сегодня типов интернет-ресурсов, создаётся с целью облегчения процессов покупки. Основной упор при его разработке делается на функциональность: коммерческий сайт должен располагать удобным и эффективным интерфейсом. Интернет-магазины (торговые системы класса «business to customer») предоставляют возможность продаж через Интернет конечному покупателю, рядовому потребителю товаров и услуг.

— информационный портал.

Информационные порталы отличаются, в первую очередь, объемом и характером информации. На портале размещается не только информация о товарах и услугах конкретной компании, но и теоретическая, отраслевая, аналитическая информация в области бизнеса компании. Порталы снабжены системами публикаций и управления информационным наполнением. Функциональность ресурса высокая, информационные возможности портала дополняются интерактивными составляющими, системами поиска и классификации информации. Эта категория сайтов ориентирована на большие «on-line» проекты, которые переносят значительную часть бизнеса компании в интернет.

В данной курсовой работе реализован информационный портал. Его основная задача – предоставление информации, при этом важно как она будет предоставлена. В связи с этим на сайте реализованный различные методы вывода информации:

— вывод списка всех клиентов и всех видов услуг;

— поиск клиентов по заданным параметрам;

— также реализовано создание и удаление записей в удобной форме.

Выбор программного обеспечения

Обоснование выбора HTML, CSS, JS, PHP

HTML (от англ. HyperText Markup Language — «язык гипертекстовой разметки») — стандартный язык разметки документов во Всемирной паутине. Большинство веб-страниц содержат описание разметки на языке HTML. Язык HTML интерпретируется браузерами и отображается в виде документа в удобной для человека форме.

Язык HTML был разработан британским учёным Тимом Бернерсом-Ли приблизительно в 1986—1991 годах в стенах Европейского Центра ядерных исследований в Женеве (Швейцария). HTML создавался как язык для обмена научной и технической документацией, пригодный для использования людьми, не являющимися специалистами в области вёрстки.

С помощью HTML можно легко создать относительно простой, но красиво оформленный документ. Помимо упрощения структуры документа, в HTML внесена поддержка гипертекста. Мультимедийные возможности были добавлены позже.

CSS (англ. Cascading Style Sheetsкаскадные таблицы стилей) — формальный язык описания внешнего вида документа, написанного с использованием языка разметки.

Преимущественно используется как средство описания, оформления внешнего вида веб-страниц, написанных с помощью языков разметки HTML и XHTML.

CSS используется создателями веб-страниц для задания цветов, шрифтов, расположения отдельных блоков и других аспектов представления внешнего вида этих веб-страниц. Основной целью разработки CSS являлось разделение описания логической структуры веб-страницы от описания внешнего вида этой веб-страницы. Такое разделение может увеличить доступность документа, предоставить большую гибкость и возможность управления его представлением, а также уменьшить сложность и повторяемость в структурном содержимом.

JavaScript — прототипно-ориентированный сценарный язык программирования.

JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.

JavaScript является объектно-ориентированным языком, но используемое в языке прототипирование обуславливает отличия в работе с объектами по сравнению с традиционными класс-ориентированными языками. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам

PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста) — скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений.

В области программирования для сети Интернет, PHP — один из популярных сценарных языков благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.

Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений. Основные из них:

— автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;

— взаимодействие с большим количеством различных систем управления базами данных (в том числе MySQL);

— обработка файлов, загружаемых на сервер;

— работа с cookies и сессиями.

Обоснование выбора СУБД MySQL

Система управления базами данных (СУБД) — совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных.

Все современные СУБД имеют:

— визуальные средства создание таблиц, форм, отчетов;

— доступ к данным серверных СУБД;

— создание приложений выполняющих функции WEB – браузеров и размещение данных в Internet;

— объектно-ориентированный язык;

— поддержку SQL.

MySQL — свободная реляционная система управления базами данных. MySQL имеет двойное лицензирование. MySQL может распространяться в соответствии с условиями лицензии GPL. Однако по условиям GPL, если какая-либо программа включает исходные коды MySQL, то она тоже должна распространяться по лицензии GPL. Это может расходиться с планами разработчиков, не желающих открывать исходные тексты своих программ. Для таких случаев предусмотрена коммерческая лицензия, которая также обеспечивает качественную сервисную поддержку.

MySQL портирована на большое количество платформ: Linux, Mac OS X, Windows 95, Windows 98, Windows NT, Windows 2000,Windows XP, Windows Server 2003, WinCE, Windows Vista и Windows 7.

MySQL имеет API для языков Delphi, C, C++, Java, Perl, PHP, Python, библиотеки для языков платформы .NET.

2.Проектирование Web-приложения

Проектирование информационного обеспечения

Логическое и физическое проектирование БД

Логическое (даталогическое) проектирование — создание схемы базы данных на основе конкретной модели данных, например, реляционной модели данных. Для реляционной модели данных даталогическая модель — набор схем отношений, обычно с указанием первичных ключей, а также «связей» между отношениями, представляющих собой внешние ключи.

Преобразование концептуальной модели в логическую модель, как правило, осуществляется по формальным правилам. Этот этап может быть в значительной степени автоматизирован.

На этапе логического проектирования учитывается специфика конкретной модели данных, но может не учитываться специфика конкретной СУБД.

Логическая схема представлена на рисунке 1.

Рисунок 1 — Логическая схема базы данных

Физическое проектирование — создание схемы базы данных для конкретной СУБД. Специфика конкретной СУБД может включать в себя ограничения на именование объектов базы данных, ограничения на поддерживаемые типы данных и т.п. Кроме того, специфика конкретной СУБД при физическом проектировании включает выбор решений, связанных с физической средой хранения данных (выбор методов управления дисковой памятью, разделение БД по файлам и устройствам, методов доступа к данным), создание индексов и т.д.

На этом этапе составляются проекты таблиц. Каждая таблица должна получить свой уникальный идентификатор (название). Этот идентификатор должен соответствовать синтаксису языка выбранной СУБД.

Определяется имя, тип и размер поля. Определяется первичный ключ, внешние ключи и поля индексирования (для быстрого поиска) в каждой из таблиц.

Для каждой связи определяются условия целостности при операциях добавления, изменения или удаления данных в родительской и дочерних таблицах. Могут использоваться следующие варианты условий: отсутствие проверки; запрет операции; каскадное выполнение операции обновления или удаления данных сразу в нескольких связанных таблицах. Кроме этого при разработке физической модели производится оценка необходимых ресурсов: оперативной памяти, быстродействия и объема памяти для хранения данных (минимального свободного места на винчестере).

Физическая схема представлена на рисунке 2.

Рисунок 2 – Физическая схема базы данных

Создание базы данных

Цель базы данных — это представление в объективной форме совокупности самостоятельных материалов, систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины.

Для удобства реализации БД создаются инструменты для их проектирования.

В данной курсовой работе использовался phpMyAdmin.

phpMyAdmin — инструмент для визуального проектирования баз данных, интегрирующий проектирование, моделирование, создание и эксплуатацию БД в единое бесшовное окружение для системы баз данных MySQL.

Интерфейс данного инструментария представлен на рисунке 3.

Рисунок 3 – Интерфейс инструментария

Проектирование и разработка Web – приложения

При разработке сайта для формирования страниц использовались HTML и PHP технологии.

В качестве инструментального средства для разработки клиентского Web-приложения будет использовался текстовый редактор Notepad++.

Каждый модуль сайта отвечает за решение определенной задачи. Описания всех включаемых в работу сайта модулей приведены в таблице 1.

Название модуля:

Описание модуля:

  1. Home.html

Главная страница сайта, содержит навигацию по сайту.

  1. About Us.html

Содержит информации о брачном агентстве.

  1. Clients.html

Страница для работы с БД.

  1. Find Love.html

Содержит информацию о клиентах.

  1. Training.html

Содержит информацию о тренингах, служит для работы с БД.

  1. Contacts.html

Содержит контактную информацию.

  1. AddToTable.php

Содержит скрипт добавления данных в БД.

  1. LookResult2.php

Содержит скрипт для просмотра всех БД.

  1. Training2.php

  1. search.php

Содержит скрипт для поиска информации

  1. delete.php

Содержит скрипт для удаления информации из БД

  1. jquery-1.4.4.min.js

  2. slides.min.jquery.js

Сожержат скрипты для оформления html страниц.

  1. aboutstyle.css

  2. clientsstyle.css

  3. contactsstyle.css

  4. findlovestyle.css

  5. homestyle.css

  6. treiningstyle.css

  7. global.css

Содержат стили для оформления html страниц.

Таб.1. Функции модулей

3.Разработка Web-приложения

Реализация доступа к БД

Доступ к БД осуществляется по средством вызова функции mysql_pconnect().

mysql_pconnect — Устанавливает постоянное соединение с сервером MySQL[8].

mysql_pconnect() работает аналогично mysql_connect() с двумя важными отличиями.

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

Во-вторых, соединение с SQL-сервером не будет закрыто, когда работа скрипта закончится. Вместо этого, оно останется рабочим для будущего использования (mysql_close() также не закрывает постоянные соединения, открытые mysql_pconnect()).

Соединения такого типа называют ‘постоянными’.Для выбора БД используется функция mysql_select_db()[8].

mysql_select_db() — Выбирает для работы указанную базу данных на сервере, на который ссылается переданный дескриптор соединения. Каждый последующий вызов функции mysql_query() будет работать с выбранной базой данных.

Реализация добавления данных

Добавление данных в БД осуществляется по следующему алгоритму:

  1. Заполняется форма с данными;

  2. По средствам глобально массива POST создаются переменные содержащие значения введенных данных;

  3. Формируется запрос с последующем вызовом функции mysql_query() которая пересылает его на сервер для выполнения.

Фрагмент кода содержащий запросы к БД:

if($_POST[‘name’]!=» && $_POST[‘city’]!=» && $_POST[‘age’]!=» && $_POST[‘tell_about_yourself’]!=» && $_POST[‘id_club’]!=» && $_POST[‘id_parties’]!=») {

$name = $_POST[‘name’];

$age = $_POST[‘age’];

$city = $_POST[‘city’];

$tellaboutyourself = $_POST[‘tell_about_yourself’];

$club = $_POST[‘id_club’];

$parties = $_POST[‘id_parties’];

$result=mysql_query(«INSERT INTO Clients (`name`, `age`, `city`, `tell_about_yourself`, `id_club`) VALUES (‘».$name.»‘,'».$age.»‘,'».$city.»‘,'».$tellaboutyourself.»‘,'».$club.»‘)»);

echo «Запись внесена в таблицу!»;

}else{

echo «Вы ввели не все данные»;

}

Реализация поиска данных

Поиск данных в БД осуществляется по следующему алгоритму:

  1. Заполняется форма с данными;

  2. По средствам глобально массива POST создаются переменные содержащие значения введенных данных;

  3. Формируется запрос с последующем вызовом функции mysql_query() которая пересылает его на сервер для выполнения;

  4. Выполняется вывод посредством цикла while и передачей ему в качестве параметра функции mysql_fetch_array которая возвращает ассоциативный или числовой массив или оба сразу.

Фрагмент кода содержащий реализацию данного алгоритма:

if($result=mysql_query(«select * from Clients where «.$searchtype.» like ‘%».$searchterm.»%'»)){

$num_results = mysql_num_rows($result);

echo » Результаты поиска: «;

echo ‘

Найдено записей: ‘.$num_results.’

‘;

}

if ($num_results>0) {

echo »;

echo ‘

‘;

echo ‘

‘;

echo ‘

‘;

echo ‘

‘;

echo ‘

‘;

echo ‘

‘;

echo ‘

‘;

echo ‘

‘;

echo ‘

‘;

echo ‘

‘;

for ($i=0; $i

ID Клиент Возраст Город Расскажите о себе

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *