Московский Государственный Технический Университет
им. Н.Э. Баумана
Калужский филиал
Кафедра ЭИУ5-КФ
Системы Автоматизированного Проектирования
Курсовая работа на тему:
«Файлообменник с веб-интерфейсом»
Калуга, 2007
Содержание
Введение
Исследовательская часть
Инструменты построения страниц
Языки веб-программирования
Методы общения клиента и сервера
Базы данных.
Веб-сервер
Редакторы кода
Инструкция программиста.
Системные требования
Инструкция по установке
Структура проекта
Описание исходных кодов
Инструкция пользователя.
Заключение.
Список литературы.
В курсовой работе была поставлена задача создания файлообменника с веб-интерфейсом, с помощью которого пользователи могут обмениваться файлами в сети.
Цель работы: показать знание языка веб-программирования PHP, а также средств HTML, CSS и базы данных MySQL.
Основные функции сайта: загрузка, изменение, удаление файлов с сайта (через веб-интерфейс), отображение загруженных файлов в удобном виде, контролируемое скачивание загруженных файлов. Курсовой проект представляет собой сайт, готовый к выкладыванию на подходящем хостинге. Для создания курсового проекта использовался текстовый редактор EditPlus.
При появлении интернета у людей возникло множество проблем. Одна из таких проблем – обмен файлами в сети. Именно ей я и решил заняться.
Для обмена файла между пользователями по сети существует несколько способов. Во-первых, e-mail (почта). Для пересылки файлов по почте необходимо знать ящик человека, которому отправляется письмо, при этом размер пересылаемых файлов увеличивается на 37%. Это не всегда удобно. Во-вторых, можно пересылать файлы при помощи сервиса ICQ. Это опять же не удобно, т.к. требуется регистрация обоих пользователей в системе и наличие у них клиентов, поддерживающих передачу файлов. Кроме того, при помощи первых 2х способов передать файлы можно лишь ограниченному числу людей.
Если же требуется передать файл большему числу людей, используют:
1. FTP (File Transfer Protocol). Для этого необходим FTP-сервер
2. Веб-сайт. Для этого требуется хостинг, не у всех он есть.
3. Файлообменник. Самый доступный способ массового распространения файлов. Файлообменники призваны решить нарастающую потребность в обмене файлами для тех, кто по тем или иным причинам не хочет использовать предыдущие способы.
Пояснительная записка состоит из вступления, трёх глав и заключения.
Глава 1 – исследовательская часть, которая содержит целесообразность выбора инструментов построения веб-страниц, языка веб-программирования, среды разработки.
Глава 2 – инструкция программиста, в состав которой входят системные требования, инструкция по установке файлообменника, описание структуры проекта и подробное описание методов.
Глава 3 – инструкция пользователя, которая содержит описание способов и приёмов работы с файлообменником с точки зрения пользователя, модератора и администратора.
Файлообменник предназначен для размещения в интернете, поэтому он должен иметь вид сайта, состоящего из отдельных страниц. Для построения страниц сайта можно использовать различные инструменты.
Традиционно для отображения содержимого сайтов используется HTML. Аббревиатура HTML расшифровывается как HyperTextMarkupLanguage – язык гипертекстовой разметки. То есть HTML – не язык программирования, а просто одно из средств для рисования страничек. Существует несколько спецификаций языка. В написании своей работы я придерживался наиболее распространённой в настоящее время спецификации HTML 4.01 Transitional. Про эту спецификацию можно посмотреть на w3c.org
Для улучшения внешнего вида HTML-страничек применяют CSS(CascadingStyleSheets) – листы стилей. Существует несколько спецификаций CSS. Разные браузеры поддерживают разные спецификации CSS.
Браузеры | CSS | CSS2 | CSS3 |
MSIE 6.0 SP2 | + | - | - |
Opera 8.x | + | + | - |
Konqueror | + | + | + |
Gecko 1.8.x | + | + | + |
Я для работы использовал CSS2, т.к. его возможностей мне достаточно для создания полноценных сайтов, а CSS3 пока что поддерживается не всеми браузерами.
Для тестирования сайта я использовал браузеры Опера 8.52 и MSIE. Сравнение характеристик браузеров – это отдельная тема, не буду заострять на ней внимание. Теоретически курсовойпроект совместим и с другими браузерами.
Широко используются скрипты, написанные на JS (JavaScript) и VBS (VisualBasicScript) для выполнения некоторых простых действий на клиентском компьютере. Они помогают изменять информацию на странице (чаще связанную с оформлением), не перезагружая страницу. Также иногда используют технологию ActiveX – чаще всего для тех же целей, что и JS. Встречаются и другие применения ActiveX – пример тому webmoney. Иногда создатели сайтов делают использование многих наворотов обязательным (картинки, скрипты, ActiveX). Это мешает нормальному восприятию содержимого сайта. В своём проекте я счёл нецелесообразным применение таких скриптов.
С помощью таких средств принято разрабатывать страницы сайтов. Но статические страницы, написанные с помощью этих средств, не позволяют осуществлять общение сайта и посетителя. Это весьма удобно реализуется с помощью языков веб-программирования.
Разнообразие сайтов в сети практически невозможно сделать, используя лишь статические страницы. Чтобы сделать информацию, отображаемую на сайте, более актуальной, интерактивной, и т.п. нужно динамически генерировать содержимое сайта, или хотя бы отдельных его страниц. Для этого были придуманы серверные приложения (CGI) и скрипты, обрабатывающиеся определённым интерпретатором. Наиболее распространены Perl, PHP и ASP.
На следующие особенности следует обратить внимание при сравнении (достоинства отмечены «+», недостатки «-»):
Perl
+ считается самым быстрым языком
+ старейший язык, следовательно, проверен временем, приёмы программирования давно отработаны и задокументированы.
- сложность вывода HTML-кода
PHP (4)
+ простота интеграции с HTML и ему подобными форматами
+ простота в освоении новичком и исключительная масштабируемость
+ популярность – полно документации как официальной (php.net и книги) так и сторонних курсов и форумов
+ популярность – всегда можно получить помощь в решении любой проблемы
+- бесплатность – никаких гарантий и служб поддержки
- популярность – все дыры в программировании (новичков) известны
ASP
+ надёжность,
+ служба поддержки,
+ интеграция с платформой .Net,
- строгая типизация,
- платный продукт,
- требует Windows-хостинг.
После такого сравнения для изучения я выбрал язык PHP, из-за таких преимуществ:
1. Наличие понятной и доступной документации
2. Простота в установке и настройке.
3. Поддержка самой популярной opensourceБД – MySQL
4. Поддержка веб-сервера Apache
5. Свобода в выборе хостинга, т.к. подавляющее большинство хостингов используют платформу FreeBSD+Apache+PHP+MySQL
Аббревиатура PHP сейчас расшифровывается как HypertextPreprocessor. Подробнее про язык PHP написано на php.net
Но как происходит «общение» посетителя с сайтом? Для этого уже довольно давно были придуманы действенные методы.
Для передачи данных от браузера клиента приложению или скрипту на сервере используются методы GET и POST протокола HTTP (HyperTextTransferProtocol), а также через куки (cookie), реферреры и другие данные, передаваемые браузером.
При передаче данных методом GET данные отображаются в адресной строке браузера, при использовании метода POST передаваемые данные не видно. Также есть возможность загрузки файлов методом POST, однако для использования этого метода необходимо сделать submit формы.
Куки – это переменные, предлагаемые к установке браузеру. Правильный браузер должен запоминать куки и при каждом посещении страницы сайта отправлять веб-серверу значения этих переменных.
Реферрер – это указатель перехода. Реферреры придуманы для отслеживания перемещения пользователей по сети. При нажатии на ссылку правильный браузер должен отправить (вместе с куками) адрес страницы, на которой находилась эта ссылка.
Также следует отметить такой важный передаваемый параметр, как сигнатура браузера. По ней однозначно определяется, кто зашёл на сайт.
Данным, переданным этими способами (HTTPGET/POST, cookie, referrers, user_agent) нельзя доверять.
Переданную информацию нужно где-то хранить. Информацию можно сохранять разными способами. Наиболее распространены базы данных, т.к. многие операции они делают за программистов, облегчая им труд.
Среди многообразия баз данных я выбрал MySQL 4.0,и вот почему. На их сайте читаем: «MySQL предлагает такую комбинацию производительности, цены и возможностей, которую вряд ли смогут предложить другие».
И действительно, основные достоинства MySQL – это:
1. Бесплатность (на 1 месте)
2. Небольшой размер и дистрибутива, и установленной программы.
3. Простота использования.
4. Скорость и стабильность.
5. Популярность.
Следует добавить, что возможности MySQL уже стали избыточными для большинства веб-приложений (да, такое часто происходит со многими хорошими программами). Более того, новая версия 5.0, которая была объявлена стабильной в феврале, несовместима с предыдущими версиями, и многие сайты стали неработоспособными после обновления серверов. Для работы моего сайта вполне достаточно возможностей MySQL 3.23, но я использовал MySQL 4.0, т.к. 3.23 уже морально устарела.