образования и науки Украины
Приазовский
государственный технический университет
Кафедра информатики
Пояснительная записка
к курсовой работе
по дисциплине «Web‑программирование»
на тему: «Разработка
каталога online видео»
Мариуполь 2009 г.
Введение
Развитие современной компьютерной техники и внедрение новейших
технологий положили начало нового
направления жизни на Земле. За довольно короткий промежуток времени развития
микроэлектроники и кибернетики произошло много изменений. Прогрессивное развитие
техники вызвало появление новых программных продуктов.
С каждым годом внедряется все большее и большее количество языков
программирования. Все они ориентированы, прежде всего, на целевую аудиторию. Развиваются не только
компьютеры, но и сети. Если еще несколько десятков лет назад Интернет
представлял собой небольшую частную сеть, то теперь это гигантская система
взаимосвязанных компьютеров, без которой, возможно, мы не сможем представить
себе жизнь. Раньше Web‑страница выглядела как обычный текст, без
какой-либо графики. Теперь же все совсем иначе: сайты насыщены иллюстрациями и
имеют непростую структуру. Решать сложные задачи и призваны такие языки
программирования, как C++, Perl, PHP и др.
В результате развития информационных технологий появилась возможность
создавать архивы файлов которые можно скачать и поделиться ими с друзьями.
Данная курсовая работа посвящена разработке файловой системе в которую
включен архив видео которое можно скачать, просмотреть какие файлы самые
популярные, самому добавлять файлы. Для создания данной ИС был выбран язык
программирования PHP.
РНР – это язык сценариев для Web с открытым исходным кодом,
применяемый в составе серверного программного обеспечения и предназначенный для
внедрения в код HTML. Система поддержки языка РНР совместима со всеми основными
типами Web‑серверов. Язык РНР позволяет внедрять фрагменты кода в обычный
код HTML‑страниц, после чего код РНР интерпретируется в составе кода
страниц перед передачей готовых страниц пользователям. РНР выполняет также
функцию соединительного языка и обеспечивает подключение Web‑страниц к
серверным базам данных.
Преимущества языка РНР: система поддержки этого языка
предоставляется бесплатно и с открытым исходным кодом, а сам язык является
полнофункциональным, межплатформенным, стабильным, быстродействующим, четко
спроектированным, простым в изучении и вполне совместимым с другими языками.
За использование системы РНР ничего не надо платить. Не менее
важно также то, что комплект программного обеспечения, состоящий из сервера
Apache, системы РНР и СУБД MySQL, превосходно работает на недорогих, обладающих
низкими характеристиками аппаратных средствах, которые являются абсолютно
неприемлемыми для эксплуатации такого сочетания программных средств, как сервер
IIS, система ASP и СУБД SQL
Server.
Flash
Video (FLV) –
формат файлов, используемый для передачи видео через Интернет. Используется
такими сервисами видеохостинга, как YouTube, Google Video, Smotri.com, Вконтакте,
Муви, RuTube, Tube.UA, Obivu, Repka.tv и другими. Хотя описание формата
контейнера было открыто, кодеки защищены патентами, и остаются собственническими.
Видеоформат
FLV‑файл –
это битовый поток, который является вариантом видеостандарта H.263. Flash
Player 8 и более новые редакции поддерживают потоковое видео On2 TrueMotion VP6.
On2 VP6 обеспечивает более качественное изображение, особенно при использовании
низкого битрейта. С другой стороны, этот формат более сложен, что может создать
трудности при просмотре на устаревших машинах.
Опциональный
альфа-канал, представляющий собой попиксельную прозрачность, поддерживается с
помощью дополнительного видеопотока, который кодирует только альфа-канал.
Реализация предполагает, что YUV-данные основного On2 VP6 видео потока всегда
конвертируются клиентом в RGB. Эта возможность доступна только для видео On2
VP6.
Начиная
с Flash Player 9 Update 3 поддерживается новый формат мультимедиа-файла ISO
Base MPEG‑4 Part 12, с новым видео-кодеком – H.264. Этот стандарт
видеосжатия при том же низком битрейте выдаёт значительно более детализированное
и «ясное» изображение, особенно в динамических сценах. Недостатками являются,
опять-таки, повышение требований к вычислительным ресурсам и платные патенты.
Аудиоформат
Звук
в FLV как правило закодирован в MP3, однако иногда могут использоваться Nellymoser
codec, несжатое аудио или ADPCM аудиоформат. В версии Flash Player 9 Update 3,
в соответствии с внедрением Adobe формата ISO Base (MPEG‑4 Part 12),
добавлена поддержка AAC аудио (профили AAC-LC, Main Profile, и HE-AAC).
Проигрыватели FLV
Формат
FLV предназначен для потокового видео, однако существует возможность использовать
его для локального хранения и воспроизведения видео. FLV используется в Adobe
Flash Player, который распространяется в качестве плагина для различных
браузеров и различных операционных систем. Также формат поддерживается многими
мультимедиа проигрывателями, например mplayer или light alloy.
Популярные
проигрыватели, поддерживающие FLV:
·
Light
Alloy
·
Winamp
·
MPlayer
·
GOM
Player
·
The
KMPlayer
·
VLC
media player
Так
как FLV это медиа-контейнер, а не формат, некоторые проигрыватели могут
некорректно воспроизводить видео или звуковой поток при отсутствии кодеков,
использованных при создании файла.
Конверторы из FLV
·
MEncoder
от MPlayer
·
Mac
FLV Video Converter Это вариант для пользователей Mac.
·
ffmpeg2theora –
для преобразования в Theora
·
Free
FLV Converter
·
FLV
Convertor
·
Any
Video Converter есть бесплатная версия.
·
Movavi
Flash Converter
·
1 Постановка задачи
1.1 Цель курсовой работы
Разработать информационную
систему «Архив online-видео», предназначенную для скачивания и добавления файлов.
1.2 Задачи курсовой работы
1. Работа с Web‑сайтом должна осуществляться
в режиме пользователя, администратора.
2. В структуру web‑сайта должны
включаться следующие разделы:
а) Основной комплекс (ядро системы и обычные
текстовые страницы).
б) Регистрация пользователей.
в) Архив
г) Информация о сайте.
д) Путь по сайту (быстрый переход на
родительские страницы).
е) Самые популярные файлы
ж)
Добавление
файлов пользователями.
з) Страница администратора.
3. Хранение информации должно
осуществляться в базе данных MySQL.
4. Сайт должен быть
разработан на языке программирования PHP.
5. В скрипт регистрации должна
быть встроена функция защиты повторных регистраций с существующим в базе
паролем, логином или электронной почтой.
6. Сайт должен иметь:
а) Интуитивно понятный интерфейс.
б) Широкий диапазон
применения.
в) Компактность.
7. Web‑сайт должен иметь низкие
требования к:
а) Системному оборудованию.
б) Операционной системе.
в) Сетевому трафику.
г) Web‑браузеру.
2. Описание объекта проектирования
2.1 Вербальное описание
Пользовательская
часть заключается в просмотре структуры существующих файлов, добавление файлов,
и скачивание файлов.
Часть опытного
пользователя состоит из пользовательской части и дополнительных функций: регистрация
на сайте.
Часть
администрирования заключается в создании таблиц БД после установки сайта на
сервере, в просмотре текущих файлов всех пользователей, в разрешении каждому
пользователю размещать на сайте свои файлы и данные.
2.2 Техническое задание
Список
тематических разделов:
Ø Главная страница
·
Регистрация
·
Добавление
§
Добавить
файл
Структура
веб-сервера представлена на рисунке 2.1.
Рисунок 2.1 –
Структура
веб-сервера
Главная
страница
содержит основное меню и имеет дизайн главной страницы. Основное меню
располагается слева и включает следующие кнопки:
Главная
Добавить файл
Регистрация
Дизайн главной
страницы (рисунок 2.2) содержит: вверху название проекта, в центре –
список ссылок на популярные файлы, слева – поле основного меню.
Рисунок 2.2 –
Эскиз
главной страницы
«Добавить
файл» –
страница содержит форму для добавления файла с ограничением размера.
«Регистрация»
–
страница содержит визуальные средства для регистрации пользователя.
2.3 Список необходимого программного обеспечения
а)
Операционная
система Windows XP
б)
apache_1.3.20‑win32
в)
mysql‑3.23.49‑win
г)
php‑4.1.2‑Win32
д)
MySQL Front
е)
Far manager 1.7
3. Информационная
модель объекта проектирования
3.1 Инфологическая модель
База данных данного
проекта состоит из одной таблицы (рисунок 3.1): user.
Рисунок 3.1 –
Структура БД
3.2 Даталогическая модель
Таблица user содержит логины (поле name) пароли (поле pass) и электронную почту
(поле email) зарегистрированных пользователей. Поле id – ключевое. Структура
таблицы user представлена на рисунке 3.2, содержимое – на рисунке 3.3.
Рисунок 3.2 – Структура таблицы user
Рисунок 3.3 –
Содержимое
таблицы user
4. Программная реализация модели на компьютере
4.1 Работа с сайтом в режиме пользователя
После входа
пользователя на сайт загрузится главная web‑страница (рисунок 4.1).
Рисунок 4.1 –
Главная страница
При нажатии
на кнопку «Регистрация» будет выведена новая страничка с формой регистрации
пользователя (Рисунок 4.2)
Рисунок 4.2 –
Регистрация
На данном
этапе требуется ввести корректный логин, пароль, подтверждение пароля и
электронную почту. При регистрации с логином который уже существует или
некорректным логином будет высвечено объявление (рисунок 4.3):
Рисунок 4.3
При
неправильном вводе пароля или неверном его повторе пользователь будет оповещен
следующим предупреждением (Рисунок 4.4):
Рисунок 4.4
При
неправильном вводе электронной почты можно увидеть следующее предупреждение (Рисунок
4.5):
Рисунок 4.5
Если
пользователь ввел все данные верно, то регистрация заканчивается и пользователь
оповещается (Рисунок 4.6):
Рисунок 4.6
При нажатии на кнопку «Добавить» будет выведена новая страничка с
добавлением файла (Рисунок 4.7)
Рисунок 4.7 Добавление файла
На данной
форме пользователь может добавлять файлы, но с ограниченным размером, не более 100
мб.
Для того чтобы добавить файл нужно нажать на кнопку «Обзор». Пользователь
увидит каталог из которого можно загрузить файл. При неправильном добавлении
пользователь увидит ошибку (Рисунок 4.8):
Рисунок 4.8
Если пользователь все сделал верно, то (Рисунок 4.9):
Рисунок 4.9
4.4 Установка
Для установки
скрипта на сервере необходимо выполнить следующие действия:
1.
Создать
на Web‑сервере папку.
2.
Загрузить
в неё все файлы, находящиеся в папке root на прилагаемом диске.
3.
Создать
в phpMyAdmin базу данных user.
4.
Создать
таблицы из страницы администратора.
Заключение
В результате выполнения курсовой работы достигнуты такие результаты:
1.
Разработана
информационная система «Архив online видео».
2.
Получены
практические навыки в создании Web‑сайтов средствами скриптового языка PHP.
3.
Получены
практические навыки самостоятельной постановки и решения задачи разработки архива
flv файлов.
4.
Усвоены
методики формализации данного типа задач.
5.
Получены
навыки выбора структур данных и построения информационной модели.
6.
Углубленно
изучены способы профессиональной работы на языке программирования РНР.
7.
Самостоятельно
изучены свободно распространяемые приложения, которые предоставляют возможности
создания систем помощи, администрирования баз данных MySQL, обслуживание и
настройки web‑серверов (Apache), создания информационных порталов или онлайновых систем
средствами языка программирования РНР.
8.
Получены
практические навыки использования научно-технической и нормативной литературы,
ГОСТов.
Перечень ссылок
1. Лаура Томсон, Люк Веллинг
Разработка
Web‑приложений на РНР и MySQL. – К.: «ДиаСофт», 2001. – 672 с.
2. Храмцов П.Б.,
Брик С.А., Русак А.М., Сурин А.И. Основы web‑технологий: Интернет-университет
информационных технологий – ИНТУИТ.ру, 2003. – 520 с.
3. Котеров Д.В. Самоучитель
PHP 4. – СПб.: БХВ-Петербург, 2001. – 576 с.: ил.
4. МазуркевичА. РНР:
настольная книга программиста /Александр Мазуркевич, Дмитрий Еловой. – Мн.:
Новое знание, 2003. – 480 с.: ил.
Приложения
Файл index
<head>
<meta
http-equiv= «Content-Language» content= «ru»>
<meta
http-equiv= «Content-Type» content= «text/html; charset=windows‑1252» />
<title>Videoking</title>
<meta
name= «description» content= «Online video»>
<meta
name= «keywords» content= «Online, video»>
<link
href= «css/style.css» rel= «stylesheet» type= «text/css»>
<script
type= «text/JavaScript»>
<!–
function
MM_swapImgRestore() { //v3.0
var
i, x, a=document.MM_sr; for (i=0; a&&i<a.length&&(x=a[i])&&x.oSrc;
i++) x.src=x.oSrc;
}
function
MM_preloadImages() { //v3.0
var
d=document; if (d.images) {if (! d.MM_p) d.MM_p=new Array();
var
i, j=d.MM_p.length, a=MM_preloadImages.arguments; for (i=0; i<a.length; i++)
if
(a[i].indexOf(«#»)!=0) {d.MM_p[j]=new Image; d.MM_p [j++].src=a[i];}}
}
function
MM_findObj (n, d) { //v4.01
var
p, i, x; if(! d) d=document; if((p=n.indexOf(«?»))>0&&parent.frames.length)
{
d=parent.frames
[n.substring (p+1)].document; n=n.substring (0, p);}
if(!
(x=d[n])&&d.all) x=d.all[n]; for (i=0;! x&&i<d.forms.length;
i++) x=d.forms[i] [n];
for
(i=0;! x&&d.layers&&i<d.layers.length; i++) x=MM_findObj (n,
d.layers[i].document);
if
(! x && d.getElementById) x=d.getElementById(n); return x;
}
function
MM_swapImage() { //v3.0
var
i, j=0, x, a=MM_swapImage.arguments; document.MM_sr=new Array; for (i=0; i<(a.length‑2);
i+=3)
if
((x=MM_findObj (a[i]))!=null) {document.MM_sr [j++]=x; if (! x.oSrc)
x.oSrc=x.src; x.src=a [i+2];}
}
//
function
FP_preloadImgs() { //v1.0
var
d=document, a=arguments; if (! d.FP_imgs) d.FP_imgs=new Array();
for
(var i=0; i<a.length; i++) {d.FP_imgs[i]=new Image; d.FP_imgs[i].src=a[i];}
}
–>
</script>
</head>
<body
onLoad= «FP_preloadImgs (/*url*/'file:///C:/Documents % 20and % 20Settings/Сергей/Local
% 20Settings/Temporary % 20Internet % 20Files/FrontPageTempDir/button13.jpg',
/*url*/'file:///C:/Documents % 20and % 20Settings/Сергей/Local
% 20Settings/Temporary % 20Internet % 20Files/FrontPageTempDir/button14.jpg');
MM_preloadImages ('images/btn-go-h.gif')»>
<p><span
lang= «en-us»>&</span></p>
<table
width= «100%» height= «100%» border= «0» cellpadding= «0» cellspacing= «0»>
<tr>
<td><table
width= «100%» border= «0» cellspacing= «0» cellpadding= «0»>
<tr>
<td
width= «1»><img src= «images/t1.gif» alt=»» width= «278» height= «48»></td>
<td
align= «right» valign= «bottom»><table width= «213» border= «0» cellspacing=
«0» cellpadding= «0»>
<tr>
<td
align= «left» valign= «bottom»><img src= «images/search.gif» alt= «search»
width= «33» height= «13» vspace= «2»></td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><input
name= «textfield» type= «text» class= «login-form» value=»» size= «50»></td>
<td
width= «1»><img src= «images/spacer.gif» alt=»» width= «4» height= «1»></td>
<td
width= «1»><a href= "#» onMouseOut= «MM_swapImgRestore()» onMouseOver=
«MM_swapImage ('Image5', '', 'images/btn-go-h.gif', 1)"><img src= «images/btn-go.gif»
alt= «Go» name= «Image5» width= «35» height= «23» border= «0»></a></td>
<td
width= «1»><img src= «images/spacer.gif» alt=»» width= «20» height= «1»></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td
height= «1»><table width= «100%» border= «0» cellspacing= «0» cellpadding=
«0»>
<tr>
<td
width= «729» background= «images/h-bg.jpg» class= «norepeat»><table
width= «100%» border= «0» cellspacing= «0» cellpadding= «0»>
<tr>
<td
width= «1»><img src= «images/spacer.gif» alt=»» width= «1» height= «241»></td>
<td
class= «c_name»> </td>
</tr>
</table></td>
<td
background= «images/h1‑bg.jpg»> <body><span lang= «en-us»>
</span><OBJECT
id=relog codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0
height=147 width=148 classid=clsid:D27CDB6E-AE6D‑11cf‑96B8–444553540000><PARAM
NAME= "_cx» VALUE= «7938»><PARAM NAME= "_cy» VALUE= «7938»><PARAM
NAME= «FlashVars» VALUE=»">
<PARAM
NAME= «Movie» VALUE= «http://softpurgen.narod.ru»><PARAM NAME= «Src» VALUE=
«http://protoplex.ru/clock.swf»>
<PARAM
NAME= «WMode» VALUE= «transparent»><PARAM NAME= «Quality» VALUE= «High»>
<PARAM
NAME= «Menu» VALUE= «false»><PARAM NAME= «AllowScriptAccess» VALUE= «always»><PARAM
NAME= «DeviceFont» VALUE= «0»><PARAM NAME= «EmbedMovie» VALUE= «0»>
<PARAM
NAME= «BGColor» VALUE= "#ffffff»><PARAM NAME= «SWRemote» VALUE=»"><PARAM
NAME= «MovieData» VALUE=»"><PARAM NAME= «SeamlessTabbing» VALUE= «1»><PARAM
NAME= «Profile» VALUE= «0»><PARAM NAME= «ProfileAddress» VALUE=»"><PARAM
NAME= «ProfilePort» VALUE= «0»><PARAM NAME= «AllowNetworking» VALUE= «all»>
<EMBED
src= «http://softpurgen.narod.ru» quality=High bgcolor=#ffffff WIDTH= «148» HEIGHT=
«147» wmode= «transparent» ALIGN=»»
TYPE=
«application/x-shockwave-flash» PLUGINSPAGE= «http://www.macromedia.com/go/getflashplayer»
menu= «false» name= «relog»>
</EMBED>
</OBJECT></body></td>
</tr>
</table></td>
</tr>
<tr>
<td
height= «100%» valign= «top»><table width= «100%» height= «100%» border=
«0» cellpadding= «0» cellspacing= «0»>
<tr>
<td
width= «1» valign= «top»>
<table
width= «100%» border= «0» cellspacing= «0» cellpadding= «0» height= «179»>
<tr>
<td><img
src= «images/spacer.gif» alt=»» width= «188» height= «26»></td>
</tr>
<tr>
<td
class= «menu» height= «24»><a class= «menu_lnk» href= «index.html»>Главная</a></td>
</tr>
<tr>
<td
class= «menu» height= «24»><a class= «menu_lnk» href= «1.html»>Добавить видео</a></td>
</tr>
<tr>
<td
class= «menu» height= «27»><a class= «menu_lnk» href= «3.html»>Регистрация</a></td>
</tr>
<tr>
<td> </td>
</tr>
</table></td>
<td
height= «100%» valign= «top»><table width= «100%» height= «100%» border=
«0» cellpadding= «0» cellspacing= «0»>
<tr>
<td><h1
align= «center»>Добро пожаловать на сайт просмотра
online видео
</h1></td>
</tr>
<tr>
<td
height= «100%» class= «body_txt»>
<p
style= «text-align: left»>
<script
type= «text/javascript»><!–
google_ad_client
= «pub‑0500162490295296»;
google_ad_width
= 468;
google_ad_height
= 60;
google_ad_format
= «468x60_as»;
google_ad_type
= «text»;
//
2006–11–21: Web templates – LAYOUTS
google_ad_channel
= «0286771451»;
google_color_border
= «121212»;
google_color_bg
= «121212»;
google_color_link
= «F6A228»;
google_color_text
= «FFFFFF»;
google_color_url
= «B3B3B3»;
//
–></script>
<! –
START FreeVideoCoding.com –>
</embed><! –
START FreeVideoCoding.com –>
<embed
src= «http://freevideocoding.com/flvplayer.swf? file=http://localhost:8080/flv/222.flv&autoStart=false»
width= «320» height= «240» quality= «high» type= «application/x-shockwave-flash»
pluginspage= «http://www.macromedia.com/go/getflashplayer»></embed></p>
<p
style= «text-align: left»>
<b><font
size= «4»>Как сделать лазер</font></b></p>
<p
style= «text-align: left»>
<embed
src= «http://freevideocoding.com/flvplayer.swf? file=http://localhost:8080/flv/111.flv&autoStart=false»
width= «320» height= «240» quality= «high» type= «application/x-shockwave-flash»
pluginspage= «http://www.macromedia.com/go/getflashplayer»></p>
<p
style= «text-align: left»>
<font
size= «4»><b>Кот и богомол</b></font></p>
<p
style= «text-align: left»>
<embed
src= «http://freevideocoding.com/flvplayer.swf? file=http://localhost:8080/flv/333.flv&autoStart=false»
width= «320» height= «240» quality= «high» type= «application/x-shockwave-flash»
pluginspage= «http://www.macromedia.com/go/getflashplayer»></p>
<p
style= «text-align: left»>
<font
size= «4»><b>Тачка</b></font></p>
<p
style= «text-align: center»>
<font
size= «4»><b>Все файлы находящиеся на сервере</b></font></p>
<p
style= «text-align: center»>
<?
include
«katalog.php»;
?>
</p>
<p
style= «text-align: center»>
</p>
</tr>
</table>
<p> </td>
</tr>
</table></td>
</tr>
<tr>
<td
height= «10» bgcolor= "#7d3c21» class= «bottom-menu»>
<p
style= «text-align: center»><a class= «bottom-menu-lnk» href= «index.html»>Главная</a>
|
<a
class= «bottom-menu-lnk» href= «1.html»>Добавить видео</a>
|
<a
class= «bottom-menu-lnk» href= «3.html»>Регистрация</a></td>
</tr>
<tr>
<td
height= «1» class= «bottom_addr»>
<p
align= «left»>© 2009 <span lang= «en-us»>Videoking</span>. All
Rights Reserved
</table>
</body>
</html>
Файл 3
<head>
<meta
http-equiv= «Content-Language» content= «ru»>
<meta
http-equiv= «Content-Type» content= «text/html; charset=windows‑1252» />
<title>Videoking</title>
<meta
name= «description» content= «Online video»>
<meta
name= «keywords» content= «Online, video»>
<link
href= «css/style.css» rel= «stylesheet» type= «text/css»>
<script
type= «text/JavaScript»>
<!–
function
MM_swapImgRestore() { //v3.0
var
i, x, a=document.MM_sr; for (i=0; a&&i<a.length&&(x=a[i])&&x.oSrc;
i++) x.src=x.oSrc;
}
function
MM_preloadImages() { //v3.0
var
d=document; if (d.images) {if (! d.MM_p) d.MM_p=new Array();
var
i, j=d.MM_p.length, a=MM_preloadImages.arguments; for (i=0; i<a.length; i++)
if
(a[i].index
}
function
MM_findObj (n, d) { //v4.01
var
p, i, x; if(! d) d=document; if((p=n.indexOf(«?»))>0&&parent.frames.length)
{
d=parent.frames
[n.substring (p+1)].document; n=n.substring (0, p);}
if(!
(x=d[n])&&d.all) x=d.all[n]; for (i=0;! x&&i<d.forms.length;
i++) x=d.forms[i] [n];
for
(i=0;! x&&d.layers&&i<d.layers.length; i++) x=MM_findObj (n,
d.layers[i].document);
if
(! x && d.getElementById) x=d.getElementById(n); return x;
}
function
MM_swapImage() { //v3.0
var
i, j=0, x, a=MM_swapImage.arguments; document.MM_sr=new Array; for (i=0; i<(a.length‑2);
i+=3)
if
((x=MM_findObj (a[i]))!=null) {document.MM_sr [j++]=x; if (! x.oSrc)
x.oSrc=x.src; x.src=a [i+2];}
}
//
function
FP_preloadImgs() { //v1.0
var
d=document, a=arguments; if (! d.FP_imgs) d.FP_imgs=new Array();
for
(var i=0; i<a.length; i++) {d.FP_imgs[i]=new Image; d.FP_imgs[i].src=a[i];}
}
function
FP_swapImg() { //v1.0
var
doc=document, args=arguments, elm, n; doc.$imgSwaps=new Array(); for (n=2;
n<args.length;
n+=2)
{elm=FP_getObjectByID (args[n]); if(elm) {doc.$imgSwaps [doc.$imgSwaps.length]=elm;
elm.$src=elm.src;
elm.src=args [n+1];}}
}
function
FP_getObjectByID (id, o) { //v1.0
var
c, el, els, f, m, n; if(! o) o=document; if (o.getElementById)
el=o.getElementById(id);
else
if (o.layers) c=o.layers; else if (o.all) el=o.all[id]; if(el) return el;
if
(o.id==id || o.name==id) return o; if (o.childNodes) c=o.childNodes; if(c)
for
(n=0; n<c.length; n++) {el=FP_getObjectByID (id, c[n]); if(el) return el;}
f=o.forms;
if(f) for (n=0; n<f.length; n++) {els=f[n].elements;
for
(m=0; m<els.length; m++) {el=FP_getObjectByID (id, els[n]); if(el) return
el;}}
return
null;
}
–>
</script>
</head>
<body
onLoad=» MM_preloadImages ('images/btn-go-h.gif'); FP_preloadImgs (/*url*/'file:///C:/Documents
% 20and % 20Settings/Сергей/Local
% 20Settings/Temporary % 20Internet % 20Files/FrontPageTempDir/button8B.jpg',/*url*/'file:///C:/Documents
% 20and % 20Settings/Сергей/Local
% 20Settings/Temporary % 20Internet % 20Files/FrontPageTempDir/button8C.jpg',/*url*/'file:///C:/Documents
% 20and % 20Settings/Сергей/Local
% 20Settings/Temporary % 20Internet % 20Files/FrontPageTempDir/buttonD.jpg',/*url*/'file:///C:/Documents
% 20and % 20Settings/Сергей/Local
% 20Settings/Temporary % 20Internet % 20Files/FrontPageTempDir/buttonE.jpg')">
<table
width= «100%» height= «100%» border= «0» cellpadding= «0» cellspacing= «0»>
<tr>
<td><table
width= «100%» border= «0» cellspacing= «0» cellpadding= «0»>
<tr>
<td
width= «1»><img src= «images/t1.gif» alt=»» width= «278» height= «48»></td>
<td
align= «right» valign= «bottom»><table width= «213» border= «0» cellspacing=
«0» cellpadding= «0»>
<tr>
<td
align= «left» valign= «bottom»><img src= «images/search.gif» alt= «search»
width= «33» height= «13» vspace= «2»></td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><input
name= «textfield» type= «text» class= «login-form» value=»» size= «50»></td>
<td
width= «1»><img src= «images/spacer.gif» alt=»» width= «4» height= «1»></td>
<td
width= «1»><a href= "#» onMouseOut= «MM_swapImgRestore()» onMouseOver=
«MM_swapImage ('Image5', '', 'images/btn-go-h.gif', 1)"><img src= «images/btn-go.gif»
alt= «Go» name= «Image5» width= «35» height= «23» border= «0»></a></td>
<td
width= «1»><img src= «images/spacer.gif» alt=»» width= «20» height= «1»></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td
height= «1»><table width= «100%» border= «0» cellspacing= «0» cellpadding=
«0»>
<tr>
<td
width= «729» background= «images/h-bg.jpg» class= «norepeat»><table
width= «100%» border= «0» cellspacing= «0» cellpadding= «0»>
<tr>
<td
width= «1»><img src= «images/spacer.gif» alt=»» width= «1» height= «241»></td>
<td
class= «c_name»> </td>
</tr>
</table></td>
<td
background= «images/h1‑bg.jpg»> <body><span lang= «en-us»>
</span><OBJECT
id=relog codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0
height=147 width=148 classid=clsid:D27CDB6E-AE6D‑11cf‑96B8–444553540000><PARAM
NAME= "_cx» VALUE= «7938»><PARAM NAME= "_cy» VALUE= «7938»><PARAM
NAME= «FlashVars» VALUE=»">
<PARAM
NAME= «Movie» VALUE= «http://softpurgen.narod.ru»><PARAM NAME= «Src» VALUE=
«http://protoplex.ru/clock.swf»>
<PARAM
NAME= «WMode» VALUE= «transparent»><PARAM NAME= «Quality» VALUE= «High»>
<PARAM
NAME= «Menu» VALUE= «false»><PARAM NAME= «AllowScriptAccess» VALUE= «always»><PARAM
NAME= «DeviceFont» VALUE= «0»><PARAM NAME= «EmbedMovie» VALUE= «0»>
<PARAM
NAME= «BGColor» VALUE= "#ffffff»><PARAM NAME= «SWRemote» VALUE=»"><PARAM
NAME= «MovieData» VALUE=»"><PARAM NAME= «SeamlessTabbing» VALUE= «1»><PARAM
NAME= «Profile» VALUE= «0»><PARAM NAME= «ProfileAddress» VALUE=»"><PARAM
NAME= «ProfilePort» VALUE= «0»><PARAM NAME= «AllowNetworking» VALUE= «all»>
<EMBED
src= «http://softpurgen.narod.ru» quality=High bgcolor=#ffffff WIDTH= «148» HEIGHT=
«147» wmode= «transparent» ALIGN=»»
TYPE=
«application/x-shockwave-flash» PLUGINSPAGE= «http://www.macromedia.com/go/getflashplayer»
menu= «false» name= «relog»>
</EMBED>
</OBJECT></body></td>
</tr>
</table></td>
</tr>
<tr>
<td
height= «100%» valign= «top»><table width= «100%» height= «100%» border=
«0» cellpadding= «0» cellspacing= «0»>
<tr>
<td
width= «1» valign= «top»>
<table
width= «100%» border= «0» cellspacing= «0» cellpadding= «0» height= «179»>
<tr>
<td><img
src= «images/spacer.gif» alt=»» width= «188» height= «26»></td>
</tr>
<tr>
<td
class= «menu»><a class= «menu_lnk» href= «index.html»>Главная</a></td>
</tr>
<tr>
<td
class= «menu»><a class= «menu_lnk» href= «1.html»>Добавить видео</a></td>
</tr>
<tr>
<td
class= «menu»><a class= «menu_lnk» href= «3.html»>Регистрация</a></td>
</tr>
<tr>
<td
height= «19»> <p> </td>
</tr>
<tr>
<td
height= «19»> <p> </td>
</tr>
<tr>
<td> </td>
</tr>
</table></td>
<td
height= «100%» valign= «top»>
<table
width= «100%» height= «77%» border= «0» cellpadding= «0» cellspacing= «0»>
<tr>
<td><h1
align= «center»>регистрация</h1></td>
</tr>
<tr>
<td
height= «100%» class= «body_txt»>
<table
width= «802» height= «132»>
<form
action= «reg.php» method= «POST»>
<tr>
<td
align= «right» width= «412»><font color= "#FFFFFF»>Имя</font></td>
<td
align= «center» width= «380»><input name= «login» type= «text» class= «login-form»
value=»» size= «50»></td>
</tr>
<tr>
<td
align= «right» width= «412»><font color= "#FFFFFF»>Пароль</font></td>
<td
align= «center» width= «380»><input name= «password» type= «password» class=
«login-form» value=»» size= «50»></td>
</tr>
<tr>
<td
align= «right» width= «412»><font color= "#FFFFFF»>Повторите пароль</font></td>
<td
align= «center» width= «380»><input name= «password2» type= «password» class=
«login-form» value=»» size= «50»></td>
</tr>
<tr>
<td
align= «right» width= «412»><font color= "#FFFFFF»>Email</font></td>
<td
align= «center» width= «380»><input name= «email» type= «text» class= «login-form»
value=»» size= «50»></td>
</tr>
<tr>
<td
colspan= «2» align= «center»><font color= "#FFFFFF»><span lang=
«en-us»>
</span></font><p>
<input
type= «image» value= «OK» name= «submit» img border= «0» id= «img1» src= «buttonC1.jpg»
height= «20» width= «100» alt= "Регистрация»
onmouseover= «FP_swapImg (1,0,/*id*/'img1',/*url*/'buttonD1.jpg')» onmouseout=
«FP_swapImg (0,0,/*id*/'img1',/*url*/'buttonC1.jpg')» onmousedown= «FP_swapImg (1,0,/*id*/'img1',/*url*/'buttonE1.jpg')»
onmouseup= «FP_swapImg (0,0,/*id*/'img1',/*url*/'buttonD1.jpg')» fp-style= «fp-btn:
Embossed Capsule 5; fp-bgcolor: #121212» fp-title= "Регистрация
"></td>
</tr>
</form>
</table>
</p>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td
height= «10» bgcolor= "#7d3c21» class= «bottom-menu»>
<p
style= «text-align: center»><a class= «bottom-menu-lnk» href= «index.html»>Главная</a>
|
<a
class= «bottom-menu-lnk» href= «1.html»>Добавить видео</a>
|
<a
class= «bottom-menu-lnk» href= «3.html»>Регистрация</a></td>
</tr>
<tr>
<td
height= «1» class= «bottom_addr»>
<p
align= «left»>© 2009 <span lang= «en-us»>Videoking</span>. All
Rights Reserved
</table>
</body>
</html>
Файл 1
<head>
<meta
http-equiv= «Content-Language» content= «ru»>
<meta
http-equiv= «Content-Type» content= «text/html; charset=windows‑1251» />
<title>Videoking</title>
<meta
name= «description» content= «Online video»>
<meta
name= «keywords» content= «Online, video»>
<link
href= «css/style.css» rel= «stylesheet» type= «text/css»>
<script
type= «text/JavaScript»>
<!–
function
MM_swapImgRestore() { //v3.0
var
i, x, a=document.MM_sr; for (i=0; a&&i<a.length&&(x=a[i])&&x.oSrc;
i++) x.src=x.oSrc;
}
function
MM_preloadImages() { //v3.0
var
d=document; if (d.images) {if (! d.MM_p) d.MM_p=new Array();
var
i, j=d.MM_p.length, a=MM_preloadImages.arguments; for (i=0; i<a.length; i++)
if
(a[i].indexOf(«#»)!=0) {d.MM_p[j]=new Image; d.MM_p [j++].src=a[i];}}
}
function
MM_findObj (n, d) { //v4.01
var
p, i, x; if(! d) d=document; if((p=n.indexOf(«?»))>0&&parent.frames.length)
{
d=parent.frames
[n.substring (p+1)].document; n=n.substring (0, p);}
if(!
(x=d[n])&&d.all) x=d.all[n]; for (i=0;! x&&i<d.forms.length;
i++) x=d.forms[i] [n];
for
(i=0;! x&&d.layers&&i<d.layers.length; i++) x=MM_findObj (n,
d.layers[i].document);
if
(! x && d.getElementById) x=d.getElementById(n); return x;
}
function
MM_swapImage() { //v3.0
var
i, j=0, x, a=MM_swapImage.arguments; document.MM_sr=new Array; for (i=0; i<(a.length‑2);
i+=3)
if
((x=MM_findObj (a[i]))!=null) {document.MM_sr [j++]=x; if (! x.oSrc)
x.oSrc=x.src; x.src=a [i+2];}
}
//
function
FP_preloadImgs() { //v1.0
var
d=document, a=arguments; if (! d.FP_imgs) d.FP_imgs=new Array();
for
(var i=0; i<a.length; i++) {d.FP_imgs[i]=new Image; d.FP_imgs[i].src=a[i];}
}
function
FP_swapImg() { //v1.0
var
doc=document, args=arguments, elm, n; doc.$imgSwaps=new Array(); for (n=2;
n<args.length;
n+=2)
{elm=FP_getObjectByID (args[n]); if(elm) {doc.$imgSwaps [doc.$imgSwaps.length]=elm;
elm.$src=elm.src;
elm.src=args [n+1];}}
}
function
FP_getObjectByID (id, o) { //v1.0
var
c, el, els, f, m, n; if(! o) o=document; if (o.getElementById)
el=o.getElementById(id);
else
if (o.layers) c=o.layers; else if (o.all) el=o.all[id]; if(el) return el;
if
(o.id==id || o.name==id) return o; if (o.childNodes) c=o.childNodes; if(c)
for
(n=0; n<c.length; n++) {el=FP_getObjectByID (id, c[n]); if(el) return el;}
f=o.forms;
if(f) for (n=0; n<f.length; n++) {els=f[n].elements;
for
(m=0; m<els.length; m++) {el=FP_getObjectByID (id, els[n]); if(el) return
el;}}
return
null;
}
–>
</script>
</head>
<body
onLoad= «FP_preloadImgs (/*url*/'file:///C:/Documents % 20and % 20Settings/Сергей/Local
% 20Settings/Temporary % 20Internet % 20Files/FrontPageTempDir/button40.jpg',
/*url*/'file:///C:/Documents % 20and % 20Settings/Сергей/Local % 20Settings/Temporary
% 20Internet % 20Files/FrontPageTempDir/button41.jpg',
/*url*/'file:///C:/Documents % 20and % 20Settings/Сергей/Local % 20Settings/Temporary
% 20Internet % 20Files/FrontPageTempDir/button49.jpg',
/*url*/'file:///C:/Documents % 20and % 20Settings/Сергей/Local % 20Settings/Temporary
% 20Internet % 20Files/FrontPageTempDir/button4A.jpg'); MM_preloadImages ('images/btn-go-h.gif')»>
<table
width= «100%» height= «100%» border= «0» cellpadding= «0» cellspacing= «0»>
<tr>
<td><table
width= «100%» border= «0» cellspacing= «0» cellpadding= «0»>
<tr>
<td
width= «1»><img src= «images/t1.gif» alt=»» width= «278» height= «48»></td>
<td
align= «right» valign= «bottom»><table width= «213» border= «0» cellspacing=
«0» cellpadding= «0»>
<tr>
<td
align= «left» valign= «bottom»><img src= «images/search.gif» alt= «search»
width= «33» height= «13» vspace= «2»></td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><input
name= «textfield» type= «text» class= «login-form» value=»» size= «50»></td>
<td
width= «1»><img src= «images/spacer.gif» alt=»» width= «4» height= «1»></td>
<td
width= «1»><a href= "#» onMouseOut= «MM_swapImgRestore()» onMouseOver=
«MM_swapImage ('Image5', '', 'images/btn-go-h.gif', 1)"><img src= «images/btn-go.gif»
alt= «Go» name= «Image5» width= «35» height= «23» border= «0»></a></td>
<td
width= «1»><img src= «images/spacer.gif» alt=»» width= «20» height= «1»></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td
height= «1»><table width= «100%» border= «0» cellspacing= «0» cellpadding=
«0»>
<tr>
<td
width= «729» background= «images/h-bg.jpg» class= «norepeat»><table
width= «100%» border= «0» cellspacing= «0» cellpadding= «0»>
<tr>
<td
width= «1»><img src= «images/spacer.gif» alt=»» width= «1» height= «241»></td>
<td
class= «c_name»> </td>
</tr>
</table></td>
<td
background= «images/h1‑bg.jpg»> <body><span lang= «en-us»>
</span><OBJECT
id=relog codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0
height=147 width=148 classid=clsid:D27CDB6E-AE6D‑11cf‑96B8–444553540000><PARAM
NAME= "_cx» VALUE= «7938»><PARAM NAME= "_cy» VALUE= «7938»><PARAM
NAME= «FlashVars» VALUE=»">
<PARAM
NAME= «Movie» VALUE= «http://softpurgen.narod.ru»><PARAM NAME= «Src» VALUE=
«http://protoplex.ru/clock.swf»>
<PARAM
NAME= «WMode» VALUE= «transparent»><PARAM NAME= «Quality» VALUE= «High»>
<PARAM
NAME= «Menu» VALUE= «false»><PARAM NAME= «AllowScriptAccess» VALUE= «always»><PARAM
NAME= «DeviceFont» VALUE= «0»><PARAM NAME= «EmbedMovie» VALUE= «0»>
<PARAM
NAME= «BGColor» VALUE= "#ffffff»><PARAM NAME= «SWRemote» VALUE=»"><PARAM
NAME= «MovieData» VALUE=»"><PARAM NAME= «SeamlessTabbing» VALUE= «1»><PARAM
NAME= «Profile» VALUE= «0»><PARAM NAME= «ProfileAddress» VALUE=»"><PARAM
NAME= «ProfilePort» VALUE= «0»><PARAM NAME= «AllowNetworking» VALUE= «all»>
<EMBED
src= «http://softpurgen.narod.ru» quality=High bgcolor=#ffffff WIDTH= «148» HEIGHT=
«147» wmode= «transparent» ALIGN=»»
TYPE=
«application/x-shockwave-flash» PLUGINSPAGE= «http://www.macromedia.com/go/getflashplayer»
menu= «false» name= «relog»>
</EMBED>
</OBJECT></body></td>
</tr>
</table></td>
</tr>
<tr>
<td
height= «100%» valign= «top»><table width= «100%» height= «100%» border=
«0» cellpadding= «0» cellspacing= «0»>
<tr>
<td
width= «1» valign= «top»>
<table
width= «100%» border= «0» cellspacing= «0» cellpadding= «0» height= «179»>
<tr>
<td>
<p
align= «left»><img src= «images/spacer.gif» alt=»» width= «188» height= «26»></td>
</tr>
<tr>
<td
class= «menu»>
<p><a
class= «menu_lnk» href= «index.html»>Главная</a></td>
</tr>
<tr>
<td
class= «menu»>
<p><a
class= «menu_lnk» href= «1.html»>Добавить видео</a></td>
</tr>
<tr>
<td
class= «menu»>
<p><a
class= «menu_lnk» href= «3.html»>Регистрация</a></td>
</tr>
<tr>
<td
height= «19»> <p align= «left»> </td>
</tr>
<tr>
<td
height= «19»> <p align= «left»> </td>
</tr>
<tr>
<td> </td>
</tr>
</table></td>
<td
height= «100%» valign= «top»><table width= «100%» height= «100%» border=
«0» cellpadding= «0» cellspacing= «0»>
<tr>
<td><h1
align= «center»>Добавить видео
</h1></td>
</tr>
<form
action= «upload.php» method= «post» enctype= «multipart/form-data»>
<tr>
<td
height= «3%» class= «body_txt» style= «text-align: left»>
<p
style= «text-align: center»>
</p>
</tr>
<tr>
<td
height= «78%» class= «body_txt» style= «text-align: left»>
<p
style= «text-align: center»><b><font size= «2»>Файл
</font>
</b>
<input
name= «filename» type= «file» class= «login-form» value=»» size= «50» enctype=
«multipart/form-data»>
<p
style= «text-align: center»> <p style= «text-align: center»> <p
style= «text-align: center»>
<input
type= «image» value= «OK» name= «submit» border= «0» id= «img2» src= «button48.jpg»
height= «20» width= «100» alt= «Загрузить» onmouseover= «FP_swapImg (1,0,/*id*/'img2',/*url*/'button49.jpg')»
onmouseout= «FP_swapImg (0,0,/*id*/'img2',/*url*/'button48.jpg')» onmousedown=
«FP_swapImg (1,0,/*id*/'img2',/*url*/'button4A.jpg')» onmouseup= «FP_swapImg (0,0,/*id*/'img2',/*url*/'button49.jpg')»
fp-style= «fp-btn: Embossed Capsule 5; fp-bgcolor: #121212» fp-title= «Загрузить»><p
style= «text-align: center»> <p style= «text-align: center»> <p
style= «text-align: center»> <p style= «text-align: center»>
<font size= «3»><b>Внимание: вы можете
загрузить файлы размером не более 100 мб!</b></font></tr>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td
height= «10» bgcolor= "#7d3c21» class= «bottom-menu»>
<p
style= «text-align: center»><a class= «bottom-menu-lnk» href= «index.html»>Главная</a>
|
<a
class= «bottom-menu-lnk» href= «1.html»>Добавить видео</a>
|
<a
class= «bottom-menu-lnk» href= «3.html»>Регистрация</a></td>
</tr>
<tr>
<td
height= «1» class= «bottom_addr»>
<p
align= «left»>© 2009 <span lang= «en-us»>Videoking</span>. All
Rights Reserved
</table>
</body>
</html>
connect.php
<? php
$dblocation = «localhost»;
$dbname = «1»;
$dbuser = «root»;
$dbpasswd = «111»;
$dbcnx = @mysql_connect ($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx)
{
echo («<P> В настоящий момент сервер базы данных не
доступен, поэтому корректное отображение страницы невозможно. </P>»);
exit();
}
if (!@mysql_select_db ($dbname, $dbcnx))
{
echo («<P> В настоящий момент база данных не доступна,
поэтому корректное отображение страницы невозможно..</P>»);
exit();
}
?>
upload.php
<html>
<head>
<title>Результат загрузки файла</title>
</head>
<body>
<? php
if ($_FILES[«filename»] [«size»] > 1024*3*1024)
{
echo («Размер файла превышает 100 мегабайт»);
exit;
}
if (copy($_FILES [«filename»] [«tmp_name»],
«C:UsbWebserverRootMP3».$_FILES [«filename»] [«name»]))
{
echo («Файл успешно загружен <br>»);
echo («Характеристики файла: <br>»);
echo («Имя файла:»);
echo ($_FILES[«filename»] [«name»]);
echo («<br>Размер файла:»);
echo ($_FILES[«filename»] [«size»]);
echo («<br>Каталог для загрузки:»);
echo ($_FILES[«filename»] [«tmp_name»]);
echo («<br>Тип файла:»);
echo ($_FILES[«filename»] [«type»]);
} else {
echo («Ошибка загрузки файла»);
}
?>
</body>
</html>
reg.php
<?
include_once («connect.php»);
{
if (empty($_POST['login']))
{
echo 'Вы не ввели логин<br>';
echo «<A href=4.HTML>Назад</A>»;
}
elseif (empty($_POST['password']))
{
echo 'Вы не ввели пароль<br>';
echo «<A href=4.HTML>Назад</A>»;
}
elseif (empty($_POST['password2']))
{
echo 'Вы не ввели подтверждение пароля<br>';
echo «<A href=4.HTML>Назад</A>»;
}
elseif ($_POST['password']!= $_POST['password2'])
{
echo 'Введенные пароли не совпадают<br>';
echo «<A href=4.HTML>Назад</A>»;
}
elseif (empty($_POST['email']))
{
echo 'Вы не ввели
e-mail<br>';
echo «<A href=4.HTML>Назад</A>»;
}
elseif (! preg_match(«/^[a-z0–9] {3,15}$/», $_POST['login']))
{
echo «Имя пользователя задано в неправильном формате<br>»;
echo «<A href=4.HTML>Назад</A>»;
}
elseif (! preg_match(«/^[a-zA-Z0–9] {3,15}$/»,
$_POST['password']))
{
echo «Пароль задан в неправильном формате<br>»;
echo «<A href=4.HTML>Назад</A>»;
}
elseif (! preg_match («/^w+([.w]+)*w@w((.w)*w+)*.w {2,3}$/»,
$_POST['email']))
{
echo «e-mail задан в неправильном формате<br>»;
echo «<A href=4.HTML>Назад</A>»;
}
else
{$login = $_POST['login'];
$password = $_POST['password'];
$password2 = $_POST['password2'];
$email = $_POST['email'];
$query = «SELECT `id`
FROM `users`
WHERE `login`='{$login}' AND `password`='{$password}'
«;
$sql = mysql_query($query) or die (mysql_error());
if (mysql_num_rows($sql) > 0)
{
echo 'Такой логин уже существует';
}
else
{
$query = «INSERT INTO users (login, password, email)
VALUES ('$login', '$password', '$email')»;
$result = mysql_query($query) or die (mysql_error());
echo 'Регистрация успешно прошла';
}
}
}
?>
katalog.php
<?
$dir =»./MP3/»;
$handle =opendir($dir);
$counter = 1;
while ($file = readdir($handle))
{
if (is_file ($dir. $file))
{
echo $counter.». «;
$counter++;
echo «<a href= «$dir$file»>»;
// $file = basename ($file,».mp3»);
echo «$file</a><br>»;
}
}
?>