Методика проектирования сайтов

Разработка сайта для профессионального училища №24. Выбор языка программирования. Характеристика ПУ №24: организационная структура, аппаратное и программное обеспечение. Дизайн сайта; создание базы данных, главного файла и модулей; система управления.

Рубрика Программирование, компьютеры и кибернетика
Вид отчет по практике
Язык русский
Дата добавления 25.01.2014
Размер файла 1,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Кратко говоря, компилятор переводит исходный текст программы на машинный язык сразу и целиком, создавая при этом отдельную машинно-исполняемую программу, а интерпретатор выполняет исходный текст прямо во время исполнения программы («интерпретируя» его своими средствами).

Разделение на компилируемые и интерпретируемые языки является условным. Так, для любого традиционно компилируемого языка, как, например, Паскаль, можно написать интерпретатор. Кроме того, большинство современных «чистых» интерпретаторов не исполняют конструкции языка непосредственно, а компилируют их в некоторое высокоуровневое промежуточное представление (например, с разыменованием переменных и раскрытием макросов).

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

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

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

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

Некоторые языки, например, Java и C#, находятся между компилируемыми и интерпретируемыми. А именно, программа компилируется не в машинный язык, а в машинно-независимый код низкого уровня, байт-код. Далее байт-код выполняется виртуальной машиной. Для выполнения байт-кода обычно используется интерпретация, хотя отдельные его части для ускорения работы программы могут быть транслированы в машинный код непосредственно во время выполнения программы по технологии компиляции «на лету» (Just-in-time compilation, JIT). Для Java байт-код исполняется виртуальной машиной Java (Java Virtual Machine, JVM), для C# - Common Language Runtime.

Подобный подход в некотором смысле позволяет использовать плюсы как интерпретаторов, так и компиляторов. Следует упомянуть также язык Форт(Forth), имеющий и интерпретатор, и компилятор.

Так как сайт - это веб-приложение, то выбор будет направлен на язык из области веб программирования.

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

Веб-приложения стали широко популярными в конце 1990-х - начале 2000-х годов.

Существенное преимущество построения Web приложений для поддержки стандартных функций браузера заключается в том, что функции должны выполняться независимо от операционной системы данного клиента. Вместо того чтобы писать различные версии для Microsoft Windows, Mac OS X, GNU/Linux и других операционных систем, приложение создается один раз для произвольно выбранной платформы и на ней разворачивается.

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

Другой (менее универсальный) подход заключается в использовании Adobe Flash, Silverlight или Java-апплетов для полной или частичной реализации пользовательского интерфейса. Поскольку большинство браузеров поддерживает эти технологии (как правило, с помощью плагинов), Flash- или Java-приложения могут выполняться с легкостью. Так как они предоставляют программисту больший контроль над интерфейсом, они способны обходить многие несовместимости в конфигурациях браузеров, хотя несовместимость между Java или Flash реализациями на стороне клиента может приводить к различным осложнениям.

В связи с архитектурным сходством с традиционными клиент-серверными приложениями, в некотором роде «толстыми» клиентами, существуют споры относительно корректности отнесения подобных систем к веб-приложениям; альтернативный термин «Богатое Интернет приложение»

Веб-приложение состоит из клиентской и серверной частей, тем самым реализуя технологию «клиент-сервер».

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

Серверная часть получает запрос от клиента, выполняет вычисления, после этого формирует веб-страницу и отправляет её клиенту по сети с использованием протокола HTTP.

Само веб-приложение может выступать в качестве клиента других служб, например, базы данных или другого веб-приложения, расположенного на другом сервере. Ярким примером веб-приложения является система управления содержимым статей Википедии: множество её участников могут принимать участие в создании сетевой энциклопедии, используя для этого браузеры своих операционных систем (будь то Microsoft Windows, GNU/Linux или любая другая операционная система) и не загружая дополнительных исполняемых модулей для работы с базой данных статей.

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

Таблица 3

Обзорная таблица языков веб программирования

Название

Лицензия

Веб-сервер

ASP

проприетарная

Специализированный

ASP.NET

проприетарная

Специализированный

C/C++

Свободная

практически любой

Java

Свободная

множество, в том числе свободных

Perl

Свободная

практически любой

PHP

Свободная

практически любой

Python

Свободная

практически любой

Ruby

Свободная

практически любой

В ходе анализа языков программирования для реализации поставленной задачи был выбран язык PHP.

PHP - скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов.

Язык PHP специально предназначен для веб-программирования, сочетает достоинства языков C и Perl и при этом весьма прост в изучении и обладает значительными преимуществами перед традиционными языками программирования.

Синтаксис PHP очень напоминает синтаксис языка C и во многом заимствован из таких языков как Java и Perl. Программист С очень быстро освоит язык PHP и сможет использовать его с максимальной эффективностью.

В принципе, в PHP есть практически все операторы и функции, имеющиеся в стандартном GNU С (или их аналоги), например есть циклы (while, for), операторы выбора (if, switch), функции работы с файловой системой и процессами (fopen, *dir, stat, unlink, popen, exec), функции ввода-вывода (fgets,fputs,printf) и множество других.

Язык и его интерпретатор разрабатываются группой энтузиастов в рамках проекта с открытым кодом. Проект распространяется под собственной лицензией, несовместимой с GNU GPL.

PHP-скрипты обычно обрабатываются интерпретатором в порядке, обеспечивающем кроссплатформенность разработанного приложения:

1) лексический анализ исходного кода и генерация лексем;

2) синтаксический анализ полученных лексем;

3) генерация байт-кода;

4) выполнение байт-кода интерпретатором (без создания исполняемого файла).

Для увеличения быстродействия приложений, возможно, использование специального программного обеспечения, так называемых акселераторов. Принцип их работы заключается в кэшировании однажды сгенерированного байт-кода в памяти и/или на диске, таким образом, из процесса работы приложения исключаются этапы 1-3, что в общем случае ведёт к значительному ускорению работы. Наибольшая эффективность акселератора достигается на скриптах с большим количеством исходного кода, содержащих небольшое количество операций, ресурсоёмких при выполнении, даже, считанного количества раз (например таких, как масштабирование изображений).

Важной особенностью является то, что разработчику нет необходимости заботиться об распределении и освобождении памяти. Ядро PHP реализует средства для автоматического управления памятью; вся выделенная память возвращается системе после завершения работы скрипта.

В силу популярности языка PHP и желания увеличить быстродействие основанных на нём веб-приложений, создано несколько альтернативных компиляторов близкого к PHP языка. Так в феврале 2010 года компания Facebook открыла свой компилятор PHP - HipHop (HPHP, Hyper-PHP) генерирующий код на C++, с последующей компиляцией в машинный код с помощью gcc.

2.4.2 Выбор СУБД

База данных - представленная в объективной форме совокупность самостоятельных материалов (статей, расчетов, нормативных актов, судебных решений и иных подобных материалов), систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины (ЭВМ)

Существует огромное количество разновидностей баз данных, отличающихся по различным критериям

Классификация БД по модели данных:

1) иерархические,

2) сетевые,

3) реляционные,

4) объектные,

5) объектно-ориентированные,

6) объектно-реляционные.

Классификация БД по среде физического хранения:

1) БД во вторичной памяти (традиционные): средой постоянного хранения является периферийная энергонезависимая память (вторичная память) - как правило жёсткий диск. В оперативную память СУБД помещает лишь кеш и данные для текущей обработки.

2) БД в оперативной памяти (in-memory databases): все данные находятся в оперативной памяти.

3) БД в третичной памяти (tertiary databases): средой постоянного хранения является отсоединяемое от сервера устройство массового хранения (третичная память), как правило, на основе магнитных лент или оптических дисков. Во вторичной памяти сервера хранится лишь каталог данных третичной памяти, файловый кеш и данные для текущей обработки; загрузка же самих данных требует специальной процедуры.

Классификация БД по содержимому:

1) географические;

2) исторические;

3) научные;

4) мультимедийные.

Классификация БД по степени распределённости:

1) централизованные (сосредоточенные);

2) распределённые.

Отдельное место в теории и практике занимают пространственные (англ. spatial), временные, или темпоральные (temporal) и пространственно-временные (spatial-temporal) БД.

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

Когда пользователь дает запрос на какую-либо страницу (переходит на неё по ссылке или вводит адрес в адресной строке своего браузера), то вызванная страница сначала обрабатывается на сервере, то есть выполняются все программы, связанные со страницей, и только потом возвращается к посетителю по сети в виде файла. Этот файл может иметь расширения: HTML, PHP, ASP, Perl, SSI, XML, DHTML, XHTML.

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

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

1) Firebird

2) Microsoft SQL Server

3) Microsoft SQL Server Express

4) mSQL

5) MySQL

6) Oracle

7) PostgreSQL

8) SQLite

9) Sybase Adaptive Server Enterprise

10) ЛИНТЕР

11) MongoDB

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

. Разработка сайта

3.1 Верстка шаблона

Шаблон написан при помощи языка HTML с использованием таблиц стилей. Выполнен он в светлых тонах для читабельности предоставленной информации на сайте.

Ниже представлен исходный код шаблона.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>

<meta name="Description" content="..." />

<meta name="Keywords" content="..." />

<meta name="robots" content="all,follow" />

<meta name="author" content="..." />

<meta name="copyright" content="Mantis-a [http://www.mantisa.cz/]" />

<meta http-equiv="Content-Script-Type" content="text/javascript" />

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<!-- CSS -->

<link rel="stylesheet" href="skin/css/style.css" type="text/css"

media="screen, projection, tv" />

<link rel="stylesheet" href="skin/css/style-print.css" type="text/css"

media="print" />

<link rel="shortcut icon" href="skin/favicon.ico" type="image/x-icon" />

<title>Your website name | Homepage</title>

</head>

<body>

<div id="wrapper">

<!-- Header -->

<div id="header-wrapper"> <!-- Matrjoska hack for IE quirk box model by

Pixy (Petr Stanicek) [http://www.pixy.cz/] -->

<div id="header">

<!-- Your website name -->

<h1><a href="#"><?php echo $nsite ?></a></h1>

<!-- Your website name end -->

<!-- Your slogan -->

<h2><?php echo $kopis ?></h2>

<!-- Your slogan end -->

<!-- Search form -->

<form class="searching" action="">

<fieldset>

<label></label>

<input class="search" type="text"

onfocus="if(this.value==this.defaultValue)this.value=''"

onblur="if(this.value=='')this.value=this.defaultValue" />

<input class="hledat" type="image" src="img/search-button.gif" name=""

alt="go" />

</fieldset>

</form>

<!-- Search end -->

</div>

</div>

<!-- Header end -->

<div id="content-box">

<div id="content-box-in">

<!-- Content right -->

<div id="content-box-right">

<div id="content-box-right-in">

<?php echo $content?>

</div>

</div>

<!-- Content right end -->

<!-- Content left -->

<div id="content-box-left">

<div id="content-box-left-in">

<h3>Навигация</h3>

<ul>

<li><a href="index.php">Главная</a></li>

<li><a href="index.php?modul=prof">Профессии</a></li>

<li><a href="index.php?modul=page&id=1">Контакты</a></li>

<li><a href="index.php?modul=page&id=3">Документы для

поступления</a></li>

<li><a href="index.php?modul=page&id=4">Условия обучения</a></li>

<li><a href="index.php?modul=file">Файловый архив</a></li>

<li class="last"><a href="index.php?modul=page&id=2">О сайте</a></li>

</ul>

<h3>Контакты</h3>

<?php echo $cont ?>

</div>

</div>

<!-- Content left end -->

<div class="cleaner">&nbsp;</div>

</div>

</div>

<hr class="noscreen" />

<!-- Footer -->

<div id="footer">

<?php echo $cop ?>

</div>

<!-- Footer end -->

</div>

</body>

</html>

При его написании был использован блочный стиль верстки с применением тега <div>. Для генерации страницы шаблону предоставлены переменные: $nsite, $kopis, $content, $cont, $cop. Все эти переменные создаются модулем и главным файлом для последующего вывода на экран пользователя. Таким образом сайт является динамическим - контент сайта меняется в зависимости от действий посетителя используя всего один шаблон.

Ниже представлен исходный вид шаблона.

Рисунок 4 - Вид шаблона

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

При создании базы данных использовался phpmyadmin.

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

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

Приложение распространяется под лицензией GNU General Public License и поэтому многие другие разработчики интегрируют его в свои разработки, например XAMPP, Denwer, AppServ.

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

Рисунок 5 - Создание базы данных

После создания базы данных было создано пять таблиц: conf, msg, new, page, prof.

Conf - Таблица с настройками сайта такие как: название, контакты, описание и копирайт.

Msg - В этой таблице храниться сообщения оставленные пользователями на сайте.

New - Таблица с новостями сайта.

Page - Эта таблица хранит исходный код статических страниц сайта

Prof - В этой таблице содержаться профессии предлагаемые училищем.

Рисунок 6 - Таблицы в базе данных

На рисунке хорошо видно какие таблицы были использованы и их свойства: тип, сравнение.

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

Рисунок 7 - Структура таблицы conf

В таблице использовались типы данных такие как: int, text.

Рисунок 8 - Структура таблицы msg

В таблице использовались типы данных такие как: int, text, varchar, tinyint.

Рисунок 9 - Структура таблицы new

В таблице использовались типы данных такие как: int, text, varchar, data..

Рисунок 10 - Структура таблицы page

В таблице использовались типы данных такие как: int, text.

Рисунок 11 - Структура таблицы prof

В таблице использовались типы данных такие как: int, text.

3.3 Разработка сайта

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

3.3.1 Создание главного файла

Главный файл называется index.php. Он отвечает за подключение к базе данных и загрузки нужного модуля. Для удобства был создан вспомогательный файл conf.php для хранения важной информации в виде констант, в котором находится: логин, пароль, адрес, имя базы данных для подключения к БД.

Исходный код conf.php.

<?php

define('DB_HOST', 'localhost');

define('DB_USER', 'root');

define('DB_PASS', 'vertrigo');

define('DB_NAME', 'db');

//Админка

define('ADMIN_NAME', 'admin');

define('ADMIN_PASS', '123');

?>

В главный файл index.php подключение файла с настройками подключается на самом первом этапе работы сайта. Следящим шагом происходит подключение к БД.

Следующий код показывает, как происходит подключение к базе данных.

mysql_connect(DB_HOST, DB_USER, DB_PASS); // Подключение к СУБД

mysql_query("SET NAMES utf8"); // SQL запрос изменения кодировки запрашиваемой информации

mysql_select_db(DB_NAME); // Выбор БД для её использования

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

if(!$_GET['modul'] or $_GET['modul'] == 'index')

include('modul/index.php');

else include('modul/'.$_GET['modul'].'.php');

После подключения нужного модуля идет подключение шаблона для генерации html страницы с последующей отправкой клиенту: include('skin/index.php');

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

3.3.2 Написание модулей

Файлы модулей расположены в папке modul.

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

Рисунок 12 - Файлы модулей

Эти модули находятся в папке modul и работают автоматически по за просу клиента.

Каждый модуль использует переменную $content для последующего использования её шаблоном сайта.

Модуль contact.php используется для отправки сообщений пользователем на сайт. Модуль index.php предназначен для вывода новостей на главной странице сайта. Модуль file.php предназначен для личного хранения файлов на сайте администратором с возможностью публикации определенных файлов на сайте. Модуль page.php предназначен для вывода статических страниц, таких как контакты сайта, необходимые документы для поступления в учебное заведение. Модуль prof.php выводит список профессий предоставляемых учебным заведением. Файл admin.php это панель управления сайтом и всеми модулями разработанный в виде отдельного модуля.

3.3.3 Написание системы управления

Система управления позволяет управлять сайтом, не имея специальной подготовки.

Ниже описаны возможности системы управления предоставляемые администратору сайта для его управления.

Рисунок 13 - Глобальные настройки сайта

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

Рисунок 14 - Управление профессиями

На рисунке 14 предоставлен список профессий которые доступны. При нажатии на ссылку добавить можно создать новую профессию.

Рисунок 15 - Добавление новой профессии

На рисунке представлен сам процесс добавления профессии

Рисунок 16 - Сообщения оставленные на сайте

Тут показано как просматривать оставленные сообщения на сайте.

Рисунок 17 - Управление новостями

Для добавления новости нужно нажать на ссылку добавить. Так же предоставлены функции изменения и удаления новости.

Рисунок 18 - Создание новости.

Здесь представлен сам процесс создания новости

Рисунок 19 - Управление статическими страницами

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

3.4 Программные требования

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

1) PHP 5.x или выше;

2) MySQL 4.1.x, 5.x;

3) Apache 1.3.x или выше

В качестве Web-сервера может использоваться так же MS IIS (Internet Information Server) версии 5.0 и выше.

Необходимо удостовериться, что используемая версия PHP имеет встроенную поддержку MySQL, XML и Zlib.

3.5 Руководство пользователя

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

Рисунок 12 - Модуль контакты

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

Заключение

В результате прохождения практики был разработан сайт для профессионального училища №24. Сайт имеет удобный для пользователя дизайн. Сайт реализован на основе модулей и базы данных, что позволяет легко дорабатывать его и создавать отдельные модули, не зависимо от всего программного кода сайта. На сайте реализованы дополнительные модули, такие как: профессии, новости, статические страницы, файловый архив, обратная связь и гибкая система управления сайтом. На сайте можно ознакомиться с профессиями предлагаемые училищем и сроком обучения, документами необходимыми для поступления и другой дополнительной информацией. Так же при не недостаточной информации можно оставить сообщение на сайте, после чего вам придет ответ.

В ходе прохождение практики были достигнуты следующие цели:

- закрепил полученные за время обучения на практике знания по предметам (ТРПП, интернет технологии, компьютерные сети, РЭУБД).

Были решены поставленные задачи:

- разработан информационный сайт для ПУ №24;

- изучен язык веб программирования PHP;

- изучена предлагаемая на предприятии предметная область;

- написан сайт с помощью выбранного языка программирования.

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

Список использованных источников

1. Кирсанов Д.А. Введение в базы данных / Д.А. Кирсанов. - М.: Бином, 2006. - 944 с.

2. Киселев С.В.. Проектирование веб сайтов/ С.В Киселев. - М.: Энергоатомиздат, 2006. - 633 с.

3. Коцюбинский А.О. Протокол HTTP в деталях / А.О Коцюбинский. - СПб.: Питер, 2006. - 336 с.

4. Краснов М.В. HTML 4 / М.В. Краснов. - СПб.: БХВ - Петербург, 2006. - 352 с.

5. Кузан Д.Я. Программирование PHP / Д.Я. Кузян. - М.: BHV, 2007. - 364 с.

6. Культин Н.Б. Основы программирования PHP / Н.Б. Культин. - М.: BHV, 2006. - 464 с.

7. Липаев В.С. Надежность программных средств: учебник для вузов / В.С. Липаев. - М.: Синтег, 2005. - 468 с..

8. Парижский С.М. MySQL начинающим / С.М. Парижский. - М.: МК - Пресс, 2007. - 216 с.

9. Пестриков В. М. PHP на примерах / В.М. Пестриков, А.Н. Маслобоев. - СПб.: БХВ - Петербург, 2007. - 496 с.

10. Пестриков В. М. PHP и MySQL / В.М. Пестриков, А.Н. Маслобоев. - СПб.: БХВ - Петербург, 2008. - 436 с.

11. Пестриков В. М. PHP для начинающих / В.М. Пестриков, А.Н. Маслобоев. - СПб.: БХВ - Петербург, 2006. - 596 с.

12. Ревич Ю.В. Нестандартные приемы программирования на php / Ю.В. Ревич. - М.: BHV, 2008. - 560 с.

13. Ремнев А.А. Веб-серверы / А.А. Ремнев, С.В. Федотова. - М.: Солон, 2007. - 360 с.

14. Рубенкинг Н.Дж. Язык программирования PHP для «чайников» / Н.Дж. Рубенкинг. - М.: Диалектика, 2007. - 218 с.

15. Рубенкинг Н.Дж. MySQL для чайников / Н.Дж. Рубенкинг. - М.: Диалектика, 2009. - 218 с.

Приложение А (обязательное)

Программный код программного продукта

index.php

<?php

session_start();

include('config.php');

mysql_connect(DB_HOST, DB_USER, DB_PASS);

mysql_query("SET NAMES utf8");

mysql_select_db(DB_NAME);

if(!$_GET['modul'] or $_GET['modul'] == 'index')

include('modul/index.php');

else include('modul/'.$_GET['modul'].'.php');

$q = mysql_query("SELECT * FROM conf");

$nsite = mysql_result($q, 0, 'nsite');

$kopis = mysql_result($q, 0, 'kopis');

$cop = mysql_result($q, 0, 'cop');

$cont = mysql_result($q, 0, 'cont');

include('skin/index.php');

mysql_close();

?>

conf.php

<?php

define('DB_HOST', 'localhost');

define('DB_USER', 'root');

define('DB_PASS', 'vertrigo');

define('DB_NAME', 'db');

//Админка

define('ADMIN_NAME', 'admin');

define('ADMIN_PASS', '123');

?>

modul/admin.php

<?php

if($_GET['do']=='exit'){

$_SESSION['admin']='no';

header('Location: /');

}

if($_POST['login'] and $_POST['pass'])

if($_POST['login']==ADMIN_NAME and

$_POST['pass']==ADMIN_PASS) $_SESSION['admin']='yes';

else $_SESSION['admin']='no';

if($_SESSION['admin']=='no' or !$_SESSION['admin'])

$content.= '<form name="" action="" method="post">

<input name="login" type="text" value="">

<input name="pass" type="password" value="">

<input type="submit" value="Send">

</form>';

else{

//главная страница админки

$content.= '<div align="center">Добро пожаловать!

<br /><br />

<a href="index.php?modul=admin&item=1">Настройки</a> |

<a href="index.php?modul=admin&item=2">Професии</a> |

<a href="index.php?modul=admin&item=3">Сообщения</a> |

<a href="index.php?modul=admin&item=4">Новости</a> |

<a href="index.php?modul=admin&item=5">Страницы</a> |

<a href="index.php?modul=admin&item=6">Файлы</a> |

<a href="index.php?modul=admin&do=exit">Выход</a></div><br />';

//items вывод нужного раздела

if($_GET['item']==1){

if($_POST['nsite']){

$sql = 'UPDATE conf SET `nsite` = "'.$_POST['nsite'].'", `kopis` =

"'.$_POST['kopis'].'", `cop` = "'.$_POST['cop'].'", `cont` =

"'.$_POST['cont'].'" WHERE `id` = 1';

mysql_query($sql);

}

$q = mysql_query("SELECT * FROM conf");

$nsite = mysql_result($q, 0, 'nsite');

$kopis = mysql_result($q, 0, 'kopis');

$cop = mysql_result($q, 0, 'cop');

$cont = mysql_result($q, 0, 'cont');

$content.='<br /><br />

<form name="" action="" method="post">

Название сайта: <input name="nsite" type="text" value="'.$nsite.'"><br />

Краткое описание сайта: <input name="kopis" type="text"

value="'.$kopis.'"><br />

Копирайт: <input name="cop" type="text" value="'.$cop.'"><br />

Контакты: <textarea name="cont" rows=5 cols=20

wrap="off">'.$cont.'</textarea><br />

<div align="center"><input type="submit" value="Сохранить"></div>

</form>

';

}

if($_GET['item']==2){

//Операции

if($_GET['do']=='delete') mysql_query("DELETE FROM `db`.`prof`

WHERE `prof`.`id` = ".$_GET['id']);

if($_GET['do']=='edite'){

if($_POST['text'] and $_POST['title']) mysql_query('UPDATE `db`.`prof`

SET `title` = \''.$_POST['title'].'\', `text` = \''.$_POST['text'].'\' WHERE

`prof`.`id` = '.$_GET['id'].';');

else{

$q = mysql_query("SELECT * FROM `prof` WHERE `id` = ".$_GET['id']."

LIMIT 0, 30");

$content.= '<form name="" action="" method="post"><br />

Название <input name="title" type="text" value="'.mysql_result($q, 0,

'title').'"><br />

Описание <textarea name="text" rows=5 cols=20

wrap="off">'.mysql_result($q, 0, 'text').'</textarea>

<div align="center"><input type="submit" value="Сохранить"></div>

</form>';

}

}

if($_GET['do']=='add'){

if($_POST['text'] and $_POST['title']) mysql_query('INSERT INTO

`db`.`prof` (`id`, `title`, `text`) VALUES (NULL, \''.$_POST['title'].'\',

\''.$_POST['text'].'\');');

else{

$q = mysql_query("SELECT * FROM `prof` WHERE `id` = ".$_GET['id']."

LIMIT 0, 30");

$content.= '<form name="" action="" method="post"><br />

Название <input name="title" type="text" value="Название"><br />

Описание <textarea name="text" rows=5 cols=20

wrap="off">Описание</textarea>

<div align="center"><input type="submit" value="Сохранить"></div>

</form>';

}

}

//Вывод

$q = mysql_query("SELECT * FROM prof");

for ($c=0; $c<mysql_num_rows($q); $c++)

$content.= $c.') '.mysql_result($q, $c, 'title').'<br />

<a

href="index.php?modul=admin&item=2&do=edite&id='.mysql_result($q,

$c, 'id').'">Изменить</a> <a

href="index.php?modul=admin&item=2&do=delete&id='.mysql_result($q,

$c, 'id').'">Удалить</a><br /><br />';

$content.= '<br /><div align="center"><a

href="index.php?modul=admin&item=2&do=add">Добавить</a></div>';

}

if($_GET['item']==3){

if($_GET['do']=='show'){

$q = mysql_query("SELECT * FROM `msg` WHERE `id` = ".$_GET['id']."

LIMIT 0, 30");

$content.='<br /><div align="center">'.mysql_result($q, $c,

'text').'</div><br /><br />';

mysql_query('UPDATE `db`.`msg` SET `show` = \'1\' WHERE `msg`.`id` =

'.$_GET['id'].';');

}

//Вывод

$q = mysql_query("SELECT * FROM msg");

for ($c=0; $c<mysql_num_rows($q); $c++){

$content.= $c.') '.mysql_result($q, $c, 'name').' | '.mysql_result($q, $c,

'mail');

if(mysql_result($q, $c, 'show')=='0')

$content.= ' <a

href="index.php?modul=admin&item=3&do=show&id='.mysql_result($q,

$c, 'id').'">Посмотреть !!!</a><br />';

else

$content.= ' <a

href="index.php?modul=admin&item=3&do=show&id='.mysql_result($q,

$c, 'id').'">Посмотреть</a><br />';

}

}

if($_GET['item']==4){

//Операции

if($_GET['do']=='delete') mysql_query("DELETE FROM `db`.`new`

WHERE `new`.`id` = ".$_GET['id']);

if($_GET['do']=='edite'){

if($_POST['text'] and $_POST['title']) mysql_query('UPDATE `db`.`new`

SET `title` = \''.$_POST['title'].'\', `text` = \''.$_POST['text'].'\' WHERE

`new`.`id` = '.$_GET['id'].';');

else{

$q = mysql_query("SELECT * FROM `new` WHERE `id` = ".$_GET['id']."

LIMIT 0, 30");

$content.= '<form name="" action="" method="post"><br />

Название <input name="title" type="text" value="'.mysql_result($q, 0,

'title').'"><br />

Описание <textarea name="text" rows=5 cols=20

wrap="off">'.mysql_result($q, 0, 'text').'</textarea>

<div align="center"><input type="submit" value="Сохранить"></div>

</form>';

}

}

if($_GET['do']=='add'){

if($_POST['text'] and $_POST['title']){

mysql_query('INSERT INTO `db`.`new` (`id`, `title`, `text`, `data`)

VALUES (NULL, \''.$_POST['title'].'\', \''.$_POST['text'].'\',

CURDATE());');

$sql = "\n"

. " ALTER TABLE `new`\n"

. " ORDER BY `data` DESC";

mysql_query($sql);

}

else{

$q = mysql_query("SELECT * FROM `new` WHERE `id` = ".$_GET['id']."

LIMIT 0, 30");

$content.= '<form name="" action="" method="post"><br />

Название <input name="title" type="text" value="Название"><br />

Описание <textarea name="text" rows=5 cols=20

wrap="off">Описание</textarea>

<div align="center"><input type="submit" value="Сохранить"></div>

</form>';

}

}

//Вывод

$q = mysql_query("SELECT * FROM new");

for ($c=0; $c<mysql_num_rows($q); $c++)

$content.= $c.') '.mysql_result($q, $c, 'data').' | '.mysql_result($q, $c,

'title').'<br />

<a

href="index.php?modul=admin&item=4&do=edite&id='.mysql_result($q,

$c, 'id').'">Изменить</a> <a

href="index.php?modul=admin&item=4&do=delete&id='.mysql_result($q,

$c, 'id').'">Удалить</a><br /><br />';

$content.= '<br /><div align="center"><a

href="index.php?modul=admin&item=4&do=add">Добавить</a></div>';

}

if($_GET['item']==5){

if(!$_GET['do']){

$q = mysql_query("SELECT * FROM page");

for ($c=0; $c<mysql_num_rows($q); $c++)

$content.= '<a href="index.php?modul=page&id='.mysql_result($q, $c,

'id').'">'.mysql_result($q, $c, 'id').'</a> <a

href="index.php?modul=admin&item=5&page='.mysql_result($q, $c,

'id').'&do=edite">Изменить</a> <a

href="index.php?modul=admin&item=5&page='.mysql_result($q, $c,

'id').'&do=delete">Удалить</a><br />';

$content.= '<a

href="index.php?modul=admin&item=5&do=creat">Создать</a>';

}

else{

if($_GET['do']=='creat'){

if($_POST['text']){

$sql = "INSERT INTO `db`.`page` (`id`, `text`) VALUES (NULL,

\'".$_POST['text']."\');";

mysql_query($sql);

header('Location: /index.php?modul=admin&item=5');

}

else{

$content.='<form name="" action="" method="post">

<textarea name="text" rows=5 cols=20 wrap="off"></textarea><br />

<div align="center"><input type="submit" value="Создатьь"></div>

</form>';

}

}

if($_GET['do']=='edite'){

if($_POST['text']){

$sql = 'UPDATE `db`.`page` SET `text` = \''.$_POST['text'].'\' WHERE

`page`.`id` = '.$_GET['page'].';';

mysql_query($sql);

}

$q = mysql_query("SELECT * FROM `page` WHERE `id` =

".$_GET['page']);

$content.='<form name="" action="" method="post">

<textarea name="text" rows=5 cols=20 wrap="off">'.mysql_result($q, 0,

'text').'</textarea><br />

<div align="center"><input type="submit" value="Сохранить"></div>

</form>';

}

if($_GET['do']=='delete'){

mysql_query("DELETE FROM `db`.`page` WHERE `page`.`id` =

".$_GET['page']);

header('Location: /index.php?modul=admin&item=5');

}

}

}

if($_GET['item']==6){

$content.='<div align="center">Файлы</div><br /><br />

<form method=post enctype=multipart/form-data>

<input type=file name=uploadfile>

<input type=submit value=Загрузить></form><br /><br />

';

if($_FILES['uploadfile']){

// Каталог, в который мы будем принимать файл:

$uploaddir = './files/';

$uploadfile = $uploaddir.basename($_FILES['uploadfile']['name']);

copy($_FILES['uploadfile']['tmp_name'], $uploadfile);

}

$dir = $_SERVER['DOCUMENT_ROOT'].'/files';

$files = scandir($dir);

$i = 2;

while($i<count($files)){

$content.= $files[$i].' <a

href="index.php?modul=admin&item=6&do=delete&name='.$files[$i].'">У

далит</a><br />';

$i++;

}

}

}

?>

modul/contact.php

<?php

if($_GET['do']=='msg'){

//Сохраняем сообщение в БД

$sql = 'INSERT INTO `db`.`msg` (`id`, `name`, `mail`, `text`, `show`)

VALUES (NULL, \''.$_POST['name'].'\', \''.$_POST['mail'].'\',

\''.$_POST['text'].'\', \'false\');';

mysql_query($sql);

$content.='Сообщение отправлено';

}

?>

modul/index.php

<?php

$q = mysql_query("SELECT * FROM new");

for ($c=0; $c<mysql_num_rows($q); $c++){

$content.= '<h3 class="first">'.mysql_result($q, $c, 'data').' |

'.mysql_result($q, $c, 'title').'</h3><div class="division">

<p>'.mysql_result($q, $c, 'text').'</p>

</div>';

}

?>

modul/file.php

<?php

$content.= '<div align="center">Файловый архив</div>';

?>

modul/page.php

<?php

$q = mysql_query("SELECT * FROM page WHERE id = ".$_GET['id']);

$content = mysql_result($q, 0, 'text');

?>

modul/prof.php

<?php

$q = mysql_query("SELECT * FROM prof");

for ($c=0; $c<mysql_num_rows($q); $c++){

$content.= '<h3 class="first">'.mysql_result($q, $c, 'title').'</h3><div

class="division">

<p>'.mysql_result($q, $c, 'text').'</p>

</div>';

}

?>

Приложение Б (обязательное)

Презентация

Рисунок Б.1

Рисунок Б.2

Рисунок Б.3

Рисунок Б.4

Рисунок Б.5

Рисунок Б.6

Рисунок Б.7

Рисунок Б.8

Рисунок Б.9

Размещено на Allbest.ru


Подобные документы

  • Основные этапы создания web-сайтов; информационное, программное и техническое обеспечение. Разработка сайта компании "Империя Востока": задачи, структура, выбор концепции дизайна сайта, организация навигации, создание базы данных, формы обратной связи.

    дипломная работа [3,9 M], добавлен 12.12.2013

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

    отчет по практике [5,1 M], добавлен 09.12.2014

  • Эффективность web-сайта в процессе развития компании, этапы его проектирования. Средства для создания web-сайтов. Разработка web-сайта для праздничного агентства "Креатив", его структура и функциональные возможности. Создание главного меню и галереи.

    курсовая работа [919,8 K], добавлен 20.01.2016

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

    дипломная работа [3,3 M], добавлен 07.02.2014

  • Разработка Web-сайта с подключенной к нему базой данных для управления пользователями, их авторизацией и регистрацией. Подключение базы данных к сайту. Использование технологии AJAX. Виды SQL инъекций и способы защиты базы данных от попыток взлома.

    дипломная работа [2,9 M], добавлен 13.02.2016

  • Основы моделирования и разработки Web-сайтов. Обзор и сравнительный анализ языков программирования. Фреймворки, используемые при создании сайта. Разработка графического дизайна, моделирование и создание Web-сайта, руководство по администрированию.

    курсовая работа [1,7 M], добавлен 07.11.2013

  • Выбор инструментальных и программных средств для создания сайта. Структура программного продукта. Создание сайта при помощи программы WordPress. Тестирование разработанной программы. Разработка структуры и дизайна сайта. Наполнение сайта контентом.

    курсовая работа [1,0 M], добавлен 09.01.2014

  • Проектирование сайта учителя в системе Ucoz с учетом особенностей педагогической деятельности. Обновление и пополнение содержимого сайта. Регистрация пользователей. Настройка дизайна и выбор модулей для сайта. Создание меню и наполнение сайта контентом.

    курсовая работа [2,1 M], добавлен 14.06.2014

  • Преимущества и недостатки статических и динамических сайтов. Эволюция и классификация web-приложений. Требования, предъявляемые к системам управления контентом (CMS). Создание структуры сайта, информационное наполнение страниц. Разработка базы данных CMS.

    дипломная работа [856,2 K], добавлен 27.06.2012

  • Возможные варианты веб-сайты вегетарианских ресторанов. Изучение особенности дизайна корпоративных сайтов вегетарианских ресторанов на примере других сайтов. Создание дизайн-макета сайта в программе Adobe Photoshop. Готовый макет корпоративного сайта.

    курсовая работа [1,7 M], добавлен 11.06.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.