Разработка информационного web-портала

 















Пояснительная записка

курсовой работы

Разработка информационного web-портала


Содержание


Введение

. Теоретические основы предметной области

1.1 Факторы выбора

.2 Целевая платформа

.3 Гибкость

.4 Время исполнения проекта

.5 Производительность

2. Web-дизайн сайта. Разработка базы данных

.1 Задачи ресурса

.2 Концепция и структура ресурса

2.3 Дизайн

3. Программная реализация web-сайта

. Тестирование и публикация web-сайта

.1 Тестирование сайта

4.2 Публикация сайта

Заключение

Библиографический список


Введение


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

Нужно сказать, что у каждого автоклуба существуют свои правила. Но принципиально они мало отличаются друг от друга:

1.Автоклуб объединяет под своей крышей людей - владельцев автомобилей либо просто тех, кому они по душе. Также он вносит вклад в развитие и популяризацию данных транспортных средств в нашей стране. Это может быть как какая-либо определенная марка этой машины, так и весь бренд в целом.

2.Автоклуб сосредотачивает в одном месте человеческие и информационные ресурсы, которые хотя бы в какой-то степени относятся к автомобилям этой марки.

3.Автоклуб предоставляет всем желающим оптимальные условия для общения, встреч и информирования обо всех новостях.

.Члены клуба могут оказывать посильную помощь друг другу в решении любых возникающих проблем относительно эксплуатации транспортного средства.

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

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

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

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


1. Теоретические основы предметной области


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

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


.1 Факторы выбора


При выборе языка программирования нужно учитывать множество факторов. Например, если при разработке динамической Web-страницы вы в качестве наилучшего варианта выберите JavaServer Pages (JSP)/сервлеты, другие могут предпочесть PHP или аналогичный язык сценариев. Не существует какого-то одного языка, который является наилучшим выбором. Можно отдать предпочтение определенным факторам, таким как производительность и безопасность корпоративных приложений, по сравнению с другими факторами, такими как количество строк кода. Любое решение сопряжено с какими-то компромиссами.

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

При выборе языка для персонального проекта можно положиться на свои личные предпочтения. Здесь может оказаться важным количество строк кода; очевидным выбором будет язык, позволяющий выполнить задачу при помощи 10 строк кода вместо 20. Сначала хочется получить решение, а потом позаботиться об удобочитаемости или производительности.

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

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

·Целевая платформа;

·Гибкость языка;

·Время исполнения проекта;

·Производительность;

·Поддержка и сообщество.


.2 Целевая платформа


Самым важным фактором является платформа, на которой программа будет работать. Рассмотрим для примера Java и C. Если программа написана на C и должна работать на машинах с Windows и Linux, потребуются компиляторы для платформ и два разных исполняемых файла. В случае с Java сгенерированного байт-кода будет достаточно для выполнения программы на любом компьютере, на котором установлена виртуальная Java-машина.

Аналогичный аргумент применим и для Web-сайтов. Они должны выглядеть и работать одинаково во всех браузерах. Использование тегов CSS3 и HTML5 без проверки совместимости с браузерами приведет к разному отображению и поведению сайта в разных браузерах.


.3 Гибкость


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

·Можно ли использовать новую функциональность без подключения новой библиотеки?

·Если нет, доступна ли эта функциональность в библиотеке языка?

·Если эта функциональность не встроена в язык и не доступна в библиотеке, какие усилия нужно приложить для ее создания с нуля?

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

Хотя сравнение этих языков технически некорректно, рассмотрим Perl и Python. Perl имеет встроенную поддержку регулярных выражений. В Python необходимо импортировать модуль re из стандартной библиотеки.


.4 Время исполнения проекта


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

Время исполнения проекта очень зависит от размера кода. Теоретически, чем легче изучить язык и чем меньше объем кода, тем меньше это время.

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


.5 Производительность


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

Рассмотрим два варианта Web-приложения, написанных на Java и на Python. На основании данных тестирования можно прийти к заключению, что в одинаковой среде приложение, написанное на Java, должно работать быстрее, чем приложение, написанное на Python. А как насчет самой среды? Если средой является одноядерная x86 Ubuntu Intel Q6600, это справедливо, поскольку вычислительная мощность ограничена. А если взять Web-приложение, работающее в облачной среде на Google App Engine? Такое приложение может использовать практически неограниченную процессорную мощность, и обе программы возвратят результаты почти за одно и то же время. Теперь основным фактором выбора будет количество строк кода и удобство обслуживания.

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

Для данного проекта выбран язык PHP. PHP имеет большую базу доступных интернет-приложений. Есть проекты с открытым кодом, которые имеют поддержку и широкий функционал, такие как WordPress и Drupal. Есть большое количество CMS, которые просты в использовании, даже для неискушённого в плане программирования пользователей. Есть отличные, коммерчески поддерживаемые приложения, таких как SugarCRM и VBulletin. Википедия является одним из крупнейших сайтов в Интернете и ее код MediaWiki свободно доступен для использования или для изучения. Весьма вероятно, что если есть тип веб-приложение, которое вы хотите использовать, кто-то уже написал что-то подобное на PHP. Хотя вам не нужно знать РНР для установки и использования этих приложений, немного знаний о PHP позволяет вам получить больше от этих ценных ресурсов. Знание PHP является полезным, даже если вы не являетесь PHP программистом. Основной фактор успеха PHP программирования - доступность и простота.имеет ряд особенностей, которые хорошо работают вместе, они включают сбор информации, динамический ввод и низкий уровень абстракции, что делает доступным данный язык. Это наряду с доступностью дешевых и широко доступных хостингов, что является важным фактором, способствующим распространению открытого исходного кода PHP, с применением базы. Отсутствие развертывания или необходимости компилировать делает быстрые циклы обратной связи и легкие пути развития. Большое распространение и применение означает поддержку и доступную документацию. Зрелость и размер сообщество PHP пользователей означает, что все неисправности РНР хорошо известны, и их решения, по большой части найдены.

РНР обрабатывается на стороне сервера и является HTML-встроенным скриптовым язык, это означает, что при выборе PHP в качестве языка реализации позволяет создавать динамически генерируемые страницы быстро и легко. Основным в разработке на языке PHP это то, что он прост в использовании даже для не-программистов. Кроме того, он доступен для большинства операционных и веб-серверов, а также можете получить доступ к наиболее общим базам данных, включая MySQL.позволят ускорить процесс разработки приложений благодаря простой интеграции удаленных инструментов а несколько различных программных приложений и аппаратных средств, чтобы заставить их всех работать должным образом.

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


2. Web-дизайн сайта. Разработка базы данных


.1 Задачи ресурса


Задачи создаваемого ресурса:

-Объединение всех владельцев определённой марки автомобиля;

-Посетителями сайта могут быть как владельцы, так и просто любители марки;

-Сосредоточение в одном месте человеческих и информационных ресурсов, которые хотя бы в какой-то степени относятся к автомобилям этой марки;

-Предоставление возможности для организации общения, встреч и информирования о последних новостях;

-Возможность делиться собственным опытом с другими посетителями.

Посетители сайта будут делиться на категории:

-Заинтересованные пользователи. Это те посетители сайта, которые зашли на ваш сайт совершенно случайно. Возможно, они еще даже не определились, интересна ли им тематика сайта, или нет.

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

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

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

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

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

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


.2 Концепция и структура ресурса


На основе этих данных будет вестись разработка концепции и структуры ресурса - основа дальнейших работ по созданию web-дизайна и текстового наполнения сайта.

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

Главная страница повествует о назначении ресурса и создании логотипа.

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

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

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

Меню. Этот инструмент представляет собой перечень основных страниц веб-ресурса, и находится чаще всего на всех страницах сайта. Раскрывающийся список. Главное достоинство данного инструмента состоит в его компактности. Однако раскрывающийся список по наглядности во многом уступает меню.

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

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


.3 Дизайн


Дизайн должен соответствовать:

-стиль - сайт должен выглядеть, красиво, интересно и привлекательно;

-удобство для пользователя - дизайн сайта должен способствовать максимальному комфорту в работе с веб-ресурсом и в восприятии информации;

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

-уникальность - каждый сайт должен быть неповторимым;

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

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

Дизайн сайта придерживается фирменных цветов марки alfa romeo.

Поиск и регистрация располагаются справа от контента, что не мешает восприятию и читабельности информации.

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


Рис. 2.3.1 Пример дизайна


Страницы сайта будут состоять из блоков, которые будут размещаться в папке bloks. Папка css для размещения файлов стиля сайта. Папка code предназначена для CAPTCHA ( компьютерный тест, используемый для того, чтобы определить, кем является пользователь системы: человеком или компьютером).В папке img размещаются все графические материалы для сайта. Папка avatar будет хранить картинки пользователей.

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

Используя phpMyAdmin создаётся база данных alfa. После этого создаются таблицы.

Таблица user представлена на рис. 2.3.2 Предназначена для хранения зарегистрированных пользователей. Она содержит поля id - ключевое, login - логин пользователя, password - пароль пользователя и avatar - аватар пользователя.

Далее создаётся таблица messages, которая также имеет ключевое поле id -ключевое, поля author - автор сообщения, poluchtel - адресат сообщения, date - дата отправки, text - текст сообщения. Эта таблица предназначена для диалога пользователей между собой.

Таблица oshibka предназначена для блокировки пользователя в случае того, когда он ввёл три раза неправильный логин или пароль. Блокировка будет произведена по ip-адресу на пятнадцать минут. Содержит три поля: ip - адрес заблокированного пользователя, date - дата блокировки, col - отвечает за количество ошибок при вводе.


Рис. 2.3.2 Таблица user


Таблица data предназначена для хранения статей и содержит поля id - ключевое, description - краткое содержание статьи (ключевое), text - текст статьи (ключевое), view - просмотры, author - автор статьи, date - дата написания, title - заголовок статьи.

И таблица search создаётся для поиска по базе данных и содержит поля id, cat_id - поиск по категориям, name, img, desc, url.

Вся база данных и готовыми таблицами представлена на рисунке 2.3.3


Рис. 2.3.3 База данных


3. Программная реализация web-сайта


Для подключения к базе данных используется скрипт, который представлен на листинге 3.1. Выбран локальный хост, пользователь Alfa, пароль 123456 и база данных Alfa.


<?php

$db = mysql_connect ("localhost","Alfa","123456");_select_db ("Alfa",$db);

?>

Листинг 3.1 Подключение к базе данных


Для регистрации пользователя сначала создаётся форма регистрации. Форма представлена в листинге 3.2


<form action="save_user.php" method="post" enctype="multipart/form-data">

<!--**** save_user.php - это адрес обработчика. То есть, после нажатия на кнопку "Зарегистрироваться", данные из полей отправятся на страничку save_user.php методом "post" ***** -->

<p>

<label>Ваш логин:<br></label>

<input name="login" type="text" size="15" maxlength="15">

</p>

<!--**** В текстовое поле (name="login" type="text") пользователь вводит свой логин ***** -->

<p>

<label>Ваш пароль:<br></label>

<input name="password" type="password" size="15" maxlength="15">

</p>

<!--**** В поле для паролей (name="password" type="password") пользователь вводит свой пароль ***** -->

<p>

<label>Выберите аватар. Изображение должно быть формата jpg, gif или png:<br></label>

<input type="FILE" name="fupload">

</p>

<!-- В переменную fupload отправится изображение, которое выбрал пользователь. -->

<p>Введите код с картинки *:<br>

<p><img src="code/my_codegen.php"></p>

<p><input type="text" name="code"></p>

<!-- В "code/my_codegen.php" генерируется код и рисуется изображение -->

<p>

<input type="submit" name="submit" value="Зарегистрироваться">

<!--**** Кнопочка (type="submit") отправляет данные на страничку save_user.php ***** -->

</p></form>

Листинг 3.2 Форма регистрации


При сохранении пользователя проверка на заполнение всех полей формы регистрации и ввод защитного кода. Листинг 3.3

(isset($_POST['code'])) { $code = $_POST['code']; if ($code == '') { unset($code);} } //заносим введенный пользователем защитный код в переменную $code, если он пустой, то уничтожаем переменную(empty($login) or empty($password)or empty($code)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт

{("Вы ввели не всю информацию, вернитесь назад и заполните все поля!"); //останавливаем выполнение сценариев

}

Листинг 3.3 Проверка на заполнение


Для защиты от возможного взлома пароля добавляется шифрование в md5. Листинг 3.4


$password = md5($password);//шифруем пароль

$password = strrev($password);// для надежности добавим реверс

Листинг 3.4 Шифрование пароля


Проверка на существование пользователя с таким же логином. Если есть совпадение, то вывести ошибку, а в противоположном случае зарегистрировать нового пользователя. Листинг 3.5


$result = mysql_query("SELECT id FROM user WHERE login='$login'",$db);

$myrow = mysql_fetch_array($result);

if (!empty($myrow['id'])) {("Извините, введённый вами логин уже зарегистрирован. Введите другой логин.");

}

// если такого нет, то сохраняем данные

$result2 = mysql_query ("INSERT INTO user (login,password,avatar) VALUES('$login','$password','$avatar')");

// Проверяем, есть ли ошибки($result2=='TRUE')

{"Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='index.php'>Главная страница</a>";

}{"Ошибка! Вы не зарегистрированы.";

}

Листинг 3.5 Проверка на совпадение логинов


Проверка на ввод корректных данных. Если пользователь ошибается три раза, то заблокировать ip-адрес этого пользователя на пятнадцать минут. В листинге 3.6 представлен скрипт исполнения данной проверки.


$result = mysql_query("SELECT * FROM user WHERE login='$login' AND password='$password'",$db); //извлекаем из базы все данные о пользователе с введенным логином и паролем

$myrow = mysql_fetch_array($result);

if (empty($myrow['id']))

{

//если пользователя с введенным логином и паролем не существует

//Делаем запись о том, что данный ip не смог войти.

$select = mysql_query ("SELECT ip FROM oshibka WHERE ip='$ip'");

$tmp = mysql_fetch_row ($select);

if ($ip == $tmp[0]) {//проверяем, есть ли пользователь в таблице "oshibka"

$result52 = mysql_query("SELECT col FROM oshibka WHERE ip='$ip'",$db);

$myrow52 = mysql_fetch_array($result52);

$col = $myrow52[0] + 1;//прибавляем еще одну попытку неудачного входа

mysql_query ("UPDATE oshibka SET col=$col,date=NOW() WHERE ip='$ip'");

}{_query ("INSERT INTO oshibka (ip,date,col) VALUES ('$ip',NOW(),'1')");

//если за последние 15 минут ошибок не было, то вставляем новую запись в таблицу "oshibka"

}("Извините, введённый вами логин или пароль неверный.");

}{; //если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел!

$_SESSION['password']=$myrow['password'];

$_SESSION['login']=$myrow['login'];

Листинг 3.6 Проверка на корректный ввод данных


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

_start();("db.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь

if (isset($_GET['id'])) {$id =$_GET['id']; } //id "хозяина" странички

else

{ exit("Вы зашли на страницу без параметра!");} //если не указали id, то выдаем ошибку

if (!preg_match("|^[\d]+$|", $id)) {

exit("<p>Неверный формат запроса! Проверьте URL</p>");//если id не число, то выдаем ошибку

}(!empty($_SESSION['login']) and !empty($_SESSION['password']))

{

//если существует логин и пароль в сессиях, то проверяем, действительны ли они

$login = $_SESSION['login'];

$password = $_SESSION['password'];

$result2 = mysql_query("SELECT id FROM user WHERE login='$login' AND password='$password'",$db);

$myrow2 = mysql_fetch_array($result2);

if (empty($myrow2['id']))

Листинг 3.7 Работа с сессиями


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

(isset($_POST['login']))//Если существует логин

{

$login = $_POST['login'];

$login = stripslashes($login); $login = htmlspecialchars($login); $login = trim($login);//удаляем все лишнее

if ($login == '') { exit("Вы не ввели логин");} //Если логин пустой, то останавливаем

if (strlen($login) < 3 or strlen($login) > 15) {//проверяем длину

exit ("Логин должен состоять не менее чем из 3 символов и не более чем из 15."); //останавливаем выполнение сценариев}

// проверка на существование пользователя с таким же логином

$result = mysql_query("SELECT id FROM user WHERE login='$login'",$db);

$myrow = mysql_fetch_array($result);

if (!empty($myrow['id'])) {("Извините, введённый вами логин уже зарегистрирован. Введите другой логин.");

}

$result4 = mysql_query("UPDATE user SET login='$login' WHERE login='$old_login'",$db);//обновляем в базе логин пользователя

if ($result4=='TRUE') {_query("UPDATE messages SET author='$login' WHERE author='$old_login'",$db);

$_SESSION['login'] = $login;//Обновляем логин в сессии"<html><head><meta http-equiv='Refresh' content='5; URL=page.php?id=".$_SESSION['id']."'></head><body>Ваш логин изменен! Вы будете перемещены через 5 сек. Если не хотите ждать, то <a href='page.php?id=".$_SESSION['id']."'>нажмите сюда.</a></body></html>";}//отправляем пользователя назад

}

Листинг 3.8 Замена логина


Выход пользователя из кабинета осуществляется уничтожением переменных о сессии. Листинг 3.9

($_SESSION['password']);($_SESSION['login']);($_SESSION['id']);// уничтожаем переменные в сессиях("<html><head><meta http-equiv='Refresh' content='0; URL=index.php'></head></html>");

// отправляем пользователя на главную страницу.

Листинг 3.9 Завершение сессии


Добавление новостей происходит через подключение к базе данных через include "db.php". Далее идёт заполнение полей заголовок, автор, краткое описание, текст статьи и все введённые данные заносятся в таблицу data. При заполнения полей будет выведено сообщение о том, что новость добавлена. Листинг 3.9.1

"db.php";(isset($_POST['go_add'])){(isset($_POST['title'])) {$title = $_POST['title']; if ($title == '') {unset($title);}}(isset($_POST['date'])) {$date = $_POST['date']; if ($date == '') {unset($date);}}(isset($_POST['description'])) {$description = $_POST['description']; if ($description == '') {unset($description);}}(isset($_POST['text'])) {$text = $_POST['text']; if ($text == '') {unset($text);}}(isset($_POST['author'])) {$author = $_POST['author']; if ($author == '') {unset($author);}}(isset($_POST['id'])) {$id = $_POST['id'];}($_POST['title']!="" && $_POST['date']!="" && $_POST['description']!="" && $_POST['author']!="" )

{(mysql_query ("INSERT INTO data SET='".$title."',='".$date."',='".$description."',='".$text."',='".$author."'"))

{"<div>

Листинг 3.9.1 Добавление новостей


Скрипт поиска представлен на листинге 3.9.2 Минимальное количество для поиска - четыре символа. При вводе меньшего количества символов выдаётся сообщение об ошибке. Поиск ведётся по таблице data, то есть по всем статьям в базе данных. При совпадении значений производится вывод совпадений на новой странице, а при отсутствии совпадений выводится сообщение о том, что по запросу ничего не найдено. Листинг 3.9.2

(isset($_POST["search"])and($_POST["search"]!=='')){

$search=$_POST["search"];

$search=trim($search);

$search=htmlspecialchars($search);

$search=stripslashes($search);(strlen($search)>=4){

/**

* Вытаскиваем из базы всё по этому запросу

*/

$result=mysql_query("SELECT * FROM data ");

$myrow=mysql_fetch_array($result);

/**

* Если что-то есть, то выводим

*/(!empty($myrow["id"])){$myrow["title"]."<br />".$myrow["text"]."<br />".$myrow["author"]."<br />";

}else{("По Вашему запросу ни чего не найдено");

}

}else{("Длина текста должна быть не менее четырёх символов");

Листинг 3.9.2 Реализация поиска

программирование сайт web дизайн

4. Тестирование и публикация web-сайта


.1 Тестирование сайта


Сайт тестировался в самых популярных браузерах таких как: Google Chrome, Opera, Mozilla Firefox и Internet Explorer. Отображение сайта во всех браузерах одинакова.

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


.2 Публикация сайта


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

Для начала следует узнать, какой ip -адрес назначен вам в локальной сети или Интернете. Проще всего это сделать, открыв Командную строку Windows и набрав там: ipconfig.

Настройка протокола IP для Windows- Ethernet адаптер:суффикс этого подключения:адрес: 192.168.56.101

Маска подсети: 255.255.255.0

Работа команды ipconfig

В данном случае внешний IP-адрес машины в локальной сети - 192.168.56.101.

Устанавливаем ip-адрес статическим, не меняется при следующем включении машины или перезагрузке. Если ip -адрес выдается динамически, то не существует простого способа, позволяющего подключить к нему Денвер.

В большинстве Windows-систем межсетевой экран или антивирус блокируют подключения с внешних машин к текущей. Это сделано по соображениям безопасности.

Цель - разрешить Windows подключения к порту 80 (протокол HTTP) ip-адреса 192.168.56.101, на котором будет "висеть" Apache. Инструкции, как это сделать в Windows XP:

-Пуск - Панель управления, Брандмауэр Windows.

-Исключения.

-Добавить порт, в поле Имя вводится ip-адрес, а в поле Номер порта - 80.

Самый простой способ заставить Денвер открывать по адресу #"justify">Заключение


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


Библиографический список


1.Дмитрий Котеров, Алексей Костарев - PHP 5. БХВ-Петербург 2008.

2.Владимир Дронов PHP, MySQL и Dreamweaver MX 2004. Разработка интерактивных Web-сайтов

.Кузнецов, Симдянов, Голышев PHP 5 на примерах. - BHV-Петербург 2005

4.Айзекс, А. Dynamic HTML / А. Айзекс. СПб.: BHV-Петербург, 1998. - 421 с.

5.#"justify">6.#"justify">.http://www.denwer.ru



Пояснительная записка курсовой работы Разработка информационного web-портала Содержание

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ