Курсовой проект
по дисциплине «Интернет технологии»
Тема:
Создание динамического Web-сайта с использованием языка
программирования PHP
ОГЛАВЛЕНИЕ
Введение
1. Создание Web-сайта для выбранного объекта
2. Создание базы данных
3. Язык программирования PHP
3.1 Подключение базы данных к сайту
3.2 Регистрация пользователя
3.3 Авторизация пользователя
3.4 Управление пользователями
3.5 Гостевая книга
4. Технология AJAX
5. Способы защиты от SQL-инъекций
Выводы
Список
использованной литературы
Сегодня очень сложно представить что-то популярнее интернета. А молодых специалистов в сфере web-программирования становится все больше. В современных ВУЗах открываются новые специальности, основным предметом изучения которых являются интернет технологии.
С 1962 года министерство обороны США активно вкладывало деньги в разработки технологий взаимодействия между компьютерами. Благодаря этим исследованиям, в 1969 году, американскими военными был создана локальная сеть - предшественница Интернета. С 1972 года функционирует всеми нами любимая электронная почта.
Переломным этапом в развитии интернет - технологий стали 90-е годы. С изобретением в 1993 году первого браузера, предполагаемые возможности Интернета стали приобретать глобальный характер. Появились многочисленные телекоммуникационные операторы, компании электронной торговли, разработчики программного обеспечения и т.п.
Интернет технологии - это огромный выбор языков и технологий web-программирования, с помощью которых и создаются web-сайты, интернет-приложения и т.д. Но, не смотря на все изобилие языков web-программирования, большинство отдают предпочтение скриптовому языку- PHP.
Технология PHP обладает несомненными
преимуществами перед конкурентами из-за своей гибкости, безопасности, отличной
интегрируемостью с серверными программными решениями как Apache и, конечно же, своей простоты и
лёгкости применения. Количество сайтов на PHP уже исчисляется миллионами и постоянно растёт, откуда
можно сделать вывод о возрастающей актуальности технологии в ближайшем будущем.
Интернет является огромной глобальной системой, которая состоит из взаимосвязанных гипертекстовых документов. Эти гипертекстовые документы мы называем web-сайтами. Другими словами сайт (от англ. website: web - «паутина, сеть» и site - «место», буквально «место, сегмент, часть в сети») - совокупность электронных документов (файлов) частного лица или организации в компьютерной сети, объединённых под одним адресом (доменным именем или IP-адресом).
Очевидно, что перед созданием web-сайта необходимо определиться с целевой аудиторией, целью (т.е. какой результат мы хотим получить с помощью сайта), а так же с технологиями, которые мы будем использовать при создании будущего сайта.
Объект, для которого мы будем разрабатывать сайт - автомобильный интернет-салон “KingAuto” (объект является выдуманным, любые совпадения с действительностью - случайны. Фирменный стиль разработан самостоятельно).
Сайт автомобильного интернет-салона “King Auto” - это информационный сайт, основной задачей которого является предоставление пользователям самой свежей и актуальной информации о товарах или услугах, которые предлагает фирма. На этом сайте будет собрана вся информация о марках и моделях автомобилей всего мира, их года выпуска и характеристики. Так как фирма специализируется на продаже автомобилей разных марок, то целевая аудитория, в основном, мужчины.
Рассмотрим структуру сайта:
|
Шапка сайта (логотип и название) |
||
|
Меню |
Новости |
Реклама |
|
Реклама |
|
|
|
подвал |
||
Рис. 1.1 Структура сайта
Перед тем как приступать к верстке, необходимо
разработать макет сайта. Для этой цели используют любые графические редакторы.
Одним из самых популярных является Photoshop, так как имеет необходимый набор инструментов и удобный
интерфейс, им мы и воспользуемся для создания макета будущего сайта.
Рис. 1.2 Макет сайта в среде Photoshop
Сайт состоит из трех блоков: 1 блок - меню, состоящее из 5 ссылок на другие страницы сайта, 2 блок - разделы и 3 блок - новости. Что касается цветового решения, я остановила свой выбор на двух цветах, это темно-серый цвет и оранжевый.
Чтобы превратить макет в действующий сайт, необходимо сделать верстку страниц, то есть перевести графический эскиз в формат HTML - определить какие элементы макета будут фоном, какие - картинкой, какие - текстовыми блоками, а какие - функциональными модулями, как будут масштабироваться составляющие страницы и т.д.
Таким образом, мы имеем одну главную страницу, которая ссылается на
остальные html страницы, как показано на рисунке
1.3. Стиль шрифтов, фоны, размер блоков описаны в файле CSS.
Рис. 1.3 Готовые HTML
страницы
Итак, открыв наш сайт через какой-либо браузер, получаем следующий
результат:
Рис. 1.4 Сайт автомобильного интернет салона «King Auto»
На данном этапе сайт нельзя назвать динамичным, так как страницы нашего сайта - это простой набор HTML кода.
Динамический сайт - сайт, состоящий из динамичных PHP-страниц- шаблонов, контента, скриптов и прочего, в виде отдельных файлов. Страница сайта, показываемая в итоге браузеру пользователя, формируется на стороне сервера динамически, по запросу, из страницы-шаблона и отдельно хранимого содержимого (информации, скриптов и др.).
Для того, что бы сайт стал динамичным, усовершенствуем его с помощью
языка web-программирования PHP: создадим базу данных и подключим её
к сайту, настроим авторизацию и регистрацию пользователя и т.д.
База данных (БД) - совокупность связанных данных, организованных по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирования, независимая от прикладных программ.
Для понятия «база данных» существует несколько классификаций. По модели представления данных БД можно классифицировать следующим образом: картотеки, иерархические, сетевые, многомерные, объектно-ориентированные, дедуктивные и реляционные. Далее речь пойдет о реляционной модели.
В реляционных базах данных вся информация заключена в таблицы. Столбцы в такой таблице имеют конкретный тип и размер; все содержимое ячеек столбца должно соответствовать их типу. Строки представляют собой набор неструктурированных данных и образуют математическое отношение. Таким образом, вся база данных - это множество таблиц-отношений, отсюда и название модели (от англ. relation - отношение).
Один из главных принципов организации данных - построение взаимосвязей между всеми элементами, что и отличает базу данных от простого набора таблиц. Т.е. информация в таблицах реляционной базы данных должна быть соответствующим образом организована. Еще один важнейший принцип - нормализация таблиц, которая сводится к устранению недостатков структуры базы данных, приводящих к различным аномалиям и нарушениям целостности данных.
Создавать БД можно как и с помощью PHP сценария, так и с помощью готовой среды разработки баз данных PHPMyAdmin.является программой "визуального" управления базами данных MySQL. Данная программа написана на PHP и служит для наглядного вывода содержимого базы данных, а так же для простого и понятного управления ею.
Перед созданием реляционной модели базы данных необходимо определится с предметной областью, а также создать ER-диаграмму.
Пусть фирма специализируется на продаже автомобилей, а также предоставляет
услуги по оформлению необходимых документов для покупки автомобиля. Продажу
автомобилей фирма осуществляет с помощью посредников, имея прямые связи с
фирмами, которые производят автомобили, тем самым, заказывать автомобиль через
фирму «King Auto» выгодней и дешевле. Тогда проектируемая база данных состоит
из 3-х сущностей: поставщики - услуги фирмы - заказчики. Рассмотрим
ER-диаграмму:
Рис. 2.1 ER-диаграмма проектируемой базы данных
Таким образом, можем создать реляционную модель базы данных для
автомобильного интернет-салона «King Auto» рис. 2.2:
|
Код Маш. |
Имя Маш. |
Код Мод |
Имя Мод. |
Год Вып |
Код Куз. |
Кол. дв. |
тип |
Кол. мест |
Код Двиг. |
V |
|
|
1 |
Audi |
1 |
Audi A3 |
1998 |
1 |
4 |
Х |
4 |
1 |
1576 |
Б |
|
1 |
Audi |
2 |
Audi A4 |
2006 |
2 |
5 |
С |
4 |
2 |
1657 |
Б |
|
Цилинд. |
Код. Пост. |
Имя Фирм. |
Лицо |
Код Зак. |
Имя зак. |
|
4 |
1 |
Audi |
И. |
1 |
П |
|
4 |
1 |
Audi |
И. |
2 |
Ф |
Рис. 2.2 Не нормализированная реляционная модель БД
Приведя БД к третьей нормальной форме и используя интерфейс программы
PHPMyAdmin создадим базу данных для нашего сайта.
Рис. 2.3. База данных, созданная в среде PHPMyAdmin
PHP (англ. PHP: Hypertext Preprocessor - «PHP: препроцессор гипертекста»; первоначально Personal Home Page Tools[3] - «Инструменты для создания персональных веб-страниц») - скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов
В 1994 году датский программист Расмус Лердорф создал набор скриптов на Perl/CGI для вывода и учёта посетителей его онлайн-резюме, обрабатывающий шаблоны HTML-документов. Лердорф назвал набор Personal Home Page (Личная Домашняя Страница). Вскоре функциональности и быстроты Perl - интерпретатора скриптов - перестало хватать, и Лердорф разработал с использованием языка C новый интерпретатор шаблонов PHP/FI (англ. Personal Home Page / Forms Interpreter - «Личная Домашняя Страница /Интерпретатор форм»).
Сегодня в области программирования для сети Интернет PHP - один из популярных скриптовых языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.
Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений. Основные из них:
· автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
· взаимодействие с большим количеством различных систем управления базами данных;
· автоматизированная отправка HTTP-заголовков;
· работа с HTTP-авторизацией;
· работа с cookies и сессиями;
· работа с локальными и удалёнными файлами, сокетами;
· обработка файлов, загружаемых на сервер;
· работа с XForms.
В настоящее время PHP используется сотнями тысяч разработчиков. Согласно рейтингу корпорации TIOBE, базирующемся на данных поисковых систем, в апреле 2011 года PHP находился на 5 месте среди языков программирования. К крупнейшим сайтам, использующим PHP, относятся Facebook, Wikipedia и др.
Входит в LAMP - распространённый набор программного обеспечения для создания и
хостинга веб-сайтов (Linux, Apache, MySQL, PHP).
Есть несколько способов работы с MySQL в PHP. Все эти способы появлялись, затем устаревали, заменяясь новыми. И на данный момент самый популярный способ - это объекто-ориентированная модель общения с MySQL. Именно с использованием этого способа мы и будем работать с базами данных.
Алгоритм подключения БД следующий:
1. Подключение.
2. Отправка запросов и получение результата.
. Закрытие подключения.
Подключиться к базе данных через PHP можно следующим
образом:
<?php $mysqli = new mysqli('localhost', 'Admin', 'pass', 'mybase');
?>
Тут мы создаём экземпляр объекта MySQLI, передавая конструктору следующие параметры:
1. Имя хоста, на котором работает MySQL.
. Пароль.
. Имя базы данных, с которой мы хотим работать.
Если какие-нибудь данные будут неверные, то, соответственно, конструктор вернёт ошибку, и подключения не будет.
Но, если будет ошибка подключения, то выполнение
скрипта не будет остановлено. В результате, он начнёт дальше выполнять наш код.
В большинстве случаев, при ошибке подключения требуется прекратить выполнение
скрипта, поэтому пишут так:
<?php $mysqli = @new mysqli('localhost', 'Admin', 'pass', 'mybase'); if
(mysqli_connect_error())
{ echo "Подключение невозможно: ".mysqli_connect_error();}?>
Здесь мы проверяем: если были какие-либо ошибки при подключении, то выводим их и заканчиваем выполнение скрипта.
Далее выполним закрытие подключения. В примере ниже мы
подключаемся к базе данных, а после проверки на успешность подключения,
закрываем это соединение:
<?php $mysqli = @new mysqli('localhost', 'Admin', 'pass', 'mybase'); if
(mysqli_connect_errno())
{ echo "Подключение невозможно: ".mysqli_connect_error(); } $mysqli-
>close();?>
Для регистрации нового пользователя необходимо не просто подключиться к существующей базе данных, но и написать запрос, который добавит пользователя в нашу базу данных.
Для регистрации пользователя создадим файл write.php ,
который будет содержать следующий код:
<?php(isset($_POST['name']) and isset($_POST['sname']) and
isset($_POST['tel']) and isset($_POST['city'])) // проверяем заполнены ли
поля
{'config.php';
$dcnx=mysql_connect("$HOST", "$USER", "$PASS"); // подключаемся к
базе данных(!$dcnx) exit(mysql_error());(!mysql_select_db($DB,$dcnx)) exit(mysql_error());
$query = mysql_query("INSERT INTO Zakazchiki (id_zak,familia,
name_zak, city, tel)
VALUES('".$_POST["id"]."','".$_POST["sname"]."','".$_POST["name"]."',
'".$_POST["city"]."','".$_POST["tel"]."');"); // пишем запрос на
добавление пользователя в существующую базу данных
if(!$query)
{"<p>Ошибка в запросе</p>";
exit();
}echo "Пользователь ".$_POST['name']." был успешно создан";
}
{"
<form method=post align=center action=write.php>:<br> <input type=text name=id><br>
//Создание полей регистрационной формы
Фамилия:<br> <input type=text name=sname><br>
Имя: <br> <input type=text name=name><br>
Город: <br><input type=text name=city><br>